2014-09-17 06:52:55 +00:00
|
|
|
|
#高级网络配置
|
2014-09-18 05:07:31 +00:00
|
|
|
|
本章将介绍Docker的一些高级网络配置和选项。
|
2014-09-17 06:52:55 +00:00
|
|
|
|
|
2014-09-18 05:07:31 +00:00
|
|
|
|
当Docker启动时,会自动在主机上创建一个`docker0`虚拟网桥,实际上是Linux的一个bridge,可以理解为一个软件交换机。它会在挂载到它的网口之间进行转发。
|
2014-09-05 07:50:54 +00:00
|
|
|
|
|
2014-09-18 05:07:31 +00:00
|
|
|
|
同时,Docker随机分配一个本地未占用的私有网段(在[RFC1918](http://tools.ietf.org/html/rfc1918)中定义)中的一个地址给`docker0`接口。比如典型的`172.17.42.1`,掩码为`255.255.0.0`。此后启动的容器内的网口也会自动分配一个同一网段(`172.17.0.0/16`)的地址。
|
2014-09-05 07:50:54 +00:00
|
|
|
|
|
2014-09-18 05:07:31 +00:00
|
|
|
|
当创建一个Docker容器的时候,同时会创建了一对`veth pair`接口(当数据包发送到一个接口时,另外一个接口也可以收到相同的数据包)。这对接口一端在容器内,即`eth0`;另一端在本地并被挂载到`docker0`网桥,名称以`veth`开头(例如`vethAQI2QT`)。通过这种方式,主机可以跟容器通信,容器之间也可以相互通信。Docker就创建了在主机和所有容器之间一个虚拟共享网络。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
![Docker网络](../_images/network.png)
|
2014-09-05 07:50:54 +00:00
|
|
|
|
|
2014-09-16 02:26:19 +00:00
|
|
|
|
接下来的部分将介绍在一些场景中,docker所有的网络定制配置。linux的原生命令将调整、补充、甚至替换docker默认的网络配置。
|