docker_practice/advanced_network/README.md

9 lines
1.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#docker高级网络配置
当docker启动时会在主机上创建一个docker0的虚拟网卡。他随机挑选RFC1918私有网络中的一段地址给docker0。比如172.17.42.1/16,16位掩码的网段可以拥有65534个地址可以使用这对主机和容器来说应该足够了。
注意本章介绍docker的高级网络配置一般情况下你不需要知道这些也可以使docker正常工作。简单的网络配置和介绍请看第五章内容。
docker0 不是普通的网卡他是桥接到其他网卡的虚拟网卡容器使用它来和主机相互通信。当创建一个docker容器的时候它就创建了一个对接口当数据包发送到一个接口时另外一个接口也可以收到相同的数据包它们是绑在一起的一对孪生接口。这对接口在容器中那一端的的名字是eth0宿主主机端的会指定一个唯一的名字比如vethAQI2QT这样的名字这种接口名字不再主机的命名空间中。所有的veth*的接口都会桥接到docker0这样docker就创建了在主机和所有容器之间一个虚拟共享网络。
![Docker网络](../images/docker0.png)
接下来的部分将介绍在一些场景中docker所有的网络定制配置。linux的原生命令将调整、补充、甚至替换docker默认的网络配置。