使用路由机制打通网络
1,请看网络简图
Paste_Image.png2,因为docker默认网卡docker0启动在默认的内部ip为172.17.42网段,所以需要修改一下其中一台宿主机(100.73.18.108)的默认网络。
vim /etc/sysconfig/docker-network
#修改docker启动参数(centos7下)
DOCKER_NETWORK_OPTIONS="--bip=172.18.42.1/16"
#在DOCKER_NETWORK_OPTIONS=后添加上面参数
service docker stop
#关掉docker服务
reboot
#重启宿主机
3,等待宿主机重启完成后,启动docker服务。
service docker start
#启动docker
ifconfig
#可以查看到docker0网卡的地址已经被修改为 172.18.42.1
4,在两台宿主机上面分别创建容器,选用 ubutnu镜像。
docker run -d 3f755ca42730 ping 127.0.0.1
#后台启动容器
docker exec -it c4ce70de9fa2 /bin/bash
#exec方式进入容器内部
ifconfig
#在容器内查看网络ip地址,并测试能否ping通,结果是无法ping通
5,在两台宿主机上添加路由规则
route add -net 172.17.0.0/16 gw 100.73.18.106
#在100.73.18.108上面添加
route add -net 172.18.0.0/16 gw 100.73.18.108
#在100.73.18.106上面添加
6,在宿主机100.73.18.106的容器(172.17.0.1)ping 宿主机100.73.18.108的容器(172.18.0.1),发现可以连通,反之,同样可以。
Paste_Image.png7,此方案的优点是配置简单,性能还可以,缺点是与宿主机现有网络混淆在一起,失去了灵活性。
网友评论