Docker 系列(三十二):高级网络配置

本章将介绍 Docker 的一些高级网络配置和选项。

注意:本章属于 Docker 高级配置,如果你是初学者,可以暂时跳过本章,直接学习 Docker Compose 一节。

当 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 就创建了在主机和所有容器之间的一个虚拟共享网络。

容器与 docker0 网桥的拓扑:三个容器各自通过 eth0 与一对 veth 接口(vethXX、vethYY、vethZZ)相连,veth 另一端挂载在宿主机 Host OS 的 docker0 网桥上,docker0 接口地址为 172.17.42.1/16

接下来的部分将介绍在一些场景中 Docker 所有的网络定制配置,以及通过 Linux 命令来调整、补充、甚至替换 Docker 默认的网络配置。

系列导航


   转载规则


《Docker 系列(三十二):高级网络配置》 由 吴杭沉 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
Docker 系列(三十三):网络快速配置指南 Docker 系列(三十三):网络快速配置指南
下面是一个跟 Docker 网络相关的命令列表。 其中有些命令选项只有在 Docker 服务启动的时候才能配置,而且不能马上生效: -b BRIDGE 或 --bridge=BRIDGE:指定容器挂载的网桥 --bip=CIDR:定制 d
2023-03-28
下一篇 
Docker 系列(三十一):配置 docker0 网桥 Docker 系列(三十一):配置 docker0 网桥
Docker 服务默认会创建一个 docker0 网桥(其上有一个 docker0 内部接口),它在内核层连通了其他的物理或虚拟网卡,这就将所有容器和本地主机都放到同一个物理网络。 Docker 默认指定了 docker0 接口的 IP 地
2023-03-14
  目录