Docker网络通信

Docker启动时创建docker0虚拟网桥作为软件交换机,分配私有IP进行容器间通信。每个容器有vethpair接口,一端连接容器内的eth0,另一端挂载到docker0,实现主机与容器及容器间的通信。这样,默认情况下Docker容器可以互相通信。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、Docker容器内的通信

当 Docker 启动时,会自动在主机上创建一个 docker0 虚拟网桥,实际上是 Linux 的一个 bridge,可以理解为一个软件交换机。它会在挂载到它的网口之间进行转发。
同时,Docker 随机分配一个本地未占用的私有网段(在 RFC1918 中定义)中的一个地址给 docker0 接口。比如典型的 172.17.42.1,掩码为 255.255.0.0。此后启动的容器内的网口也会自动分配一个同一网段(172.17.0.0/16)的地址。
当创建一个 Docker 容器的时候,同时会创建了一对 veth pair 接口(当数据包发送到一个接口时,另外一个接口也可以收到相同的数据包)。这对接口一端在容器内,即 eth0;另一端在本地并被挂载到 docker0 网桥,名称以 veth 开头(例如 vethAQI2QT)。通过这种方式,主机可以跟容器通信,容器之间也可以相互通信。Docker 就创建了在主机和所有容器之间一个虚拟共享网络
在这里插入图片描述

在这里我简单的总结一下
当安装docker之后,会创建一个名叫docker0的虚拟网桥(图一,指令ip a),所有在docker容器内启动的容器,都会有两个接口,一个挂载在docker0的网桥上,另一个挂载在启动的容器的内部,当数据包发送到一个接口时,另外一个接口也可以收到相同的数据包,因此docker内部的镜像默认是可以互相通信的。

在这里插入图片描述

二、Docker容器

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值