容器间的网络通信|学习笔记

简介: 快速学习容器间的网络通信

开发者学堂课程【深入解析 Docker 容器化技术容器间的网络通信】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/659/detail/10958


容器间的网络通信

 

内容介绍

一、创建容器

二、互相通信

 

一、创建容器

本章节学习容器之间如何进行通信。

1、创建三个容器,分别是 c1,c2,c3

//创建两个容器分别是 c1c2 这两个容器默认使用的网络驱动都是 bridge。

docker run -itdname=c1 busybox

docker run -itd –name=c1 busybox

//通过 docker network inspect bridge 查看到使用 bridge 网络驱动的容器有 c1c2

//创建 c3容器,c3容器指定了自定义的网络驱动为 isolated_nw 网络,所以需要首先创建该网络,如果就有该网络就不需要创建。

Docker network create –driver bridge isolated_nw

//创建 c3容器c3容器使用的是 isolated_nw 网络。

docker run –network-isolated_nw-itd --name=c3 busybox

2、为 c2容器添加一个新的网络。

Docker network connect isolated_nw c2

 

二、互相通信

目前容器所拥有的网络:c1容器默认使用的网络是 bridge,创建好的 c2容器也有 bridge 网络,并且还新增了一个 isolated_nw 网络,c3容器只有一个网络,即 isolated_nw 网络。c1与 c2,c1与c3,c2与 c3之间通过 ping 命令就可以进行通信。

1、首先查看三个容器的 ip 地址。

Docker inspect c1

Docker inspect c2

Docker inspect c3

c1的 ip 地址是172.17.0.4。由于 c2有两个网络驱动,所以 c2有两个 ip 地址,分别是172.17.0.5和172.19.0.3,c3的 ip 地址是172.19.02c1中只有一个 bridge 网络驱动,c3 中只有一个网络驱动是 isolated_nw,而 c2中拥有两个网卡,分别是 bridge isolated_nw。由此得出,c1和 c2 可以通过 bridge 网卡通信,c2和 c3通过网卡 isolated_nw 通信。而 c1和 c3则不能进行通信,因为它们不属于一个局域网。

2、验证猜想:分别进入 c1c2c3容器,ping 一下即可。

//进入 c1 容器,-w 4表示响应的结果是4行。

Docker attach c1

Ping -w 4 172.17.0.5

//有响应数据,表示 c1和 c2可以通信。注意:Ping -w 4 c2 的写法是错误的,不能直接 ping 容器的名字,只能 ping 容器的 IP 地址。

Ping -w 4 172.19.0.2

//c1 ping c3 的 IP 地址则没有响应数据,表示 ping 不通,c1 c3不能进行通信。

退出 c1容器,快捷键是 ctrl+q+p。

//进入 c2容器,ping c1的 ip 地址。

Docker attach c2

Ping -w 4 172.17.0.4

//结果有响应数据,c2和 c1可以进行通信

Ping -w 4 172.19.0.2

// ping c3的 ip 地址有响应数据,c2和 c3可以进行通信

image.png

c2能和 c1,c3进行通信是因为 c2有两块网卡,而 c1c3不能进行通信是因为 c1 和 c3的网络不一样。

以上是本节课所讲内容:docker 网络管理之容器间的网络通信。

相关文章
|
人工智能 弹性计算 运维
ACK Edge与IDC:高效容器网络通信新突破
本文介绍如何基于ACK Edge以及高效的容器网络插件管理IDC进行容器化。
|
10月前
|
Docker 容器
Docker网关冲突导致容器启动网络异常解决方案
当执行`docker-compose up`命令时,服务器网络可能因Docker创建新网桥导致IP段冲突而中断。原因是Docker默认的docker0网卡(172.17.0.1/16)与宿主机网络地址段重叠,引发路由异常。解决方法为修改docker0地址段,通过配置`/etc/docker/daemon.json`调整为非冲突段(如192.168.200.1/24),并重启服务。同时,在`docker-compose.yml`中指定网络模式为`bridge`,最后通过检查docker0地址、网络接口列表及测试容器启动验证修复效果。
1635 39
|
9月前
|
存储 Linux 容器
【Container App】在容器中抓取网络包的方法
本文介绍在Azure Container App中安装tcpdump抓取网络包,并通过Storage Account上传抓包文件的方法。内容包括使用curl和nc测试外部接口连通性、长Ping端口、安装tcpdump、抓取网络包、以及通过crul命令上传文件至Azure Storage。适用于需要分析网络请求和排查网络问题的场景。
276 1
|
负载均衡 网络协议 开发者
掌握 Docker 网络:构建复杂的容器通信
在 Docker 容器化环境中,容器间的通信至关重要。本文详细介绍了 Docker 网络的基本概念和类型,包括桥接网络、宿主网络、覆盖网络和 Macvlan 网络等,并提供了创建、管理和配置自定义网络的实用命令。通过掌握这些知识,开发者可以构建更健壮和灵活的容器化应用,提高应用的可扩展性和安全性。
|
Ubuntu 网络安全 图形学
Ubuntu学习笔记(二):ubuntu20.04解决右上角网络图标激活失败或者消失,无法连接有线问题。
在Ubuntu 20.04系统中解决网络图标消失和无法连接有线网络问题的方法,其中第三种方法通过检查并确保Windows防火墙中相关服务开启后成功恢复了网络连接。
5266 0
Ubuntu学习笔记(二):ubuntu20.04解决右上角网络图标激活失败或者消失,无法连接有线问题。
|
11月前
|
网络协议 Docker 容器
使用网络--容器互联
使用网络--容器互联
224 18
|
11月前
|
Kubernetes Cloud Native 区块链
Arista cEOS 4.30.10M - 针对云原生环境设计的容器化网络操作系统
Arista cEOS 4.30.10M - 针对云原生环境设计的容器化网络操作系统
359 0
|
存储 缓存 监控
Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
本文介绍了Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
1392 8
|
网络协议 Ubuntu 前端开发
好好的容器突然起不来,经定位是容器内无法访问外网了?测试又说没改网络配置,该如何定位网络问题
本文记录了一次解决前端应用集成到主应用后出现502错误的问题。通过与测试人员的沟通,最终发现是DNS配置问题导致的。文章详细描述了问题的背景、沟通过程、解决方案,并总结了相关知识点和经验教训,帮助读者学习如何分析和定位网络问题。
844 1
下一篇
开通oss服务