Docker网络配置
摘要
当docker启动时,它会在宿主机器上创建一个名为docker0的虚拟网络接口。它会从RFC 1918定义的私有地址中随机选择一个主机不用的地址和子网掩码,并将它分配给docker0。例如当我启动docker几分钟后它选择了172.17.42.1/16-一个16位的子网掩码为主机和它的容器提供了65,534个ip地址。
但docker0并不是正常的网络接口。它只是一个在绑定到这上面的其他网卡间自动转发数据包的虚拟以太网桥。它可以使容器与主机相互通信。每次Docker创建一个容器,它就会创建一对对等接口(peer interface),类似于一个管子的两端--在这边可以收到另一边发送的数据包。Docker会将对等接口中的一个做为[url=]eth0[/url][url=file:///C:/Users/Administrator.USER-20150713QM/Desktop/docker%E8%B5%84%E6%96%99%E8%BF%90%E8%90%A5/Docker%E7%BD%91%E7%BB%9C%E9%85%8D%E7%BD%AE.doc#_msocom_1][P1][/url] 接口连接到容器上,并使用类似于[url=]vethAQI2QT[/url][url=file:///C:/Users/Administrator.USER-20150713QM/Desktop/docker%E8%B5%84%E6%96%99%E8%BF%90%E8%90%A5/Docker%E7%BD%91%E7%BB%9C%E9%85%8D%E7%BD%AE.doc#_msocom_2][P2][/url] 这样的惟一名称来持有另一个,该名称取决于主机的命名空间。通过将所有veth*接口绑定到docker0桥接网卡上,Docker在主机和所有Docker容器间创建一个共享的虚拟子网。
本文其他部分将会讲解使用Docker选项的所有方式,并且-在高级模式下-使用纯linux网线配置命令来调整,补充,或完全替代Docker的默认网络配置。