Docker启动时会在主机上自动创建一个docker0虚拟网桥,实际上它是一个Linux网桥,会对挂载其上的接口实现转发。
Docker会随机分配一个本地未占用的私有网段的地址给docker0接口,比如典型的172.17.42.1,掩码255.255.0.0.此后启动的容器内的网口会自动分配一个同网段(172.17.0.0/16)的地址。
当创建一个Docker容器时,同时会创建一对veth pari接口。这对接口一端在容器内,即eth0,另一端在本地并挂载到docker0网桥,以veth开头。通过这种方式,主机与容器之间建立虚拟共享网络,实现相互通信。
网络参数
Docker服务启动时的配置(不能马上生效)
-b Bridge
或--bridge=Bridge
指定容器挂载的网桥--bip=CIDR
指定docker0的掩码-H SOCKET
或--host=SOCKET
Docker服务端接受命令的通道--icc=true
是否支持容器之间通信--ip-forward=true
是否支持ip转发,是否启用net.ipv4.ip.forward--iptables=true
是否添加iptables规则--mtu=BYTES
容器网络中的MTU
Docker服务启动或Docker容器启动时
--dns=IP_ADDRESS
指定DNS服务器--dns-search=DOMAIN
指定DNS搜索域
Docker容器启动时
-h HOSTNAME
或--hostname=HOSTNAME
配置容器主机名--link=CONTAINER_NAME:ALIAS
添加另一个容器的连接--net=bridge|none|container
配置容器的桥接方式-p SPEC
或--publish=SPEC
映射端口-P
或--publish-all=true
映射所有端口