mirror of
https://github.com/yeasy/docker_practice.git
synced 2024-12-25 14:38:54 +00:00
.. | ||
bridge.md | ||
communication.md | ||
dns.md | ||
docker0.md | ||
example.md | ||
fast_config.md | ||
how_connect.md | ||
port_mapping.md | ||
ptp.md | ||
README.md |
#高级网络配置 本章将介绍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所有的网络定制配置。linux的原生命令将调整、补充、甚至替换docker默认的网络配置。