一 背景
默认情况下dockerd服务启动会创建一个默认网桥(采用一个未使用网段IP)。这样此机器上的容器就通过这个默认网桥进行通信(容器与宿主机通信也通过网桥),同时达到隔离外部网络的目的。有时候我们有这样的需求:一个宿主机器上的容器可以直接和其他宿主机器上互通网络,这里作为实验,可以用“暴力”的方式实现:
宿主机host1 网口eth0:192.168.0.100
宿主机host2 网络eth0: 192.168.0.101
需要达到的目标:host1上的容器在创建后可以和host2 互相通网。
二 容器所在宿主机网络配置
1 为dockerd创建自定义的网桥
# brctrl addbr br0 && ifconfig br0 192.168.0.100 up && brctrl addif br0 eth0 && ifconfig eth0 0.0.0.0
2 使用br0作为网桥启动dockerd
# dockerd -b br0 &
3 创建容器
# docker run --name tst_brg -it myImage /bin/bash
这里使用宿主机器上的镜像myImage创建一个名字为tst_brg的容器。
这样容器tst_brg就与host2在同一个网段,且可以互相ping通了。