Docker跨主机容器通信(1)

使用路由机制打通网络

1,请看网络简图

Docker跨主机容器通信(1)_第1张图片
Paste_Image.png

2,因为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),发现可以连通,反之,同样可以。

Docker跨主机容器通信(1)_第2张图片
Paste_Image.png

7,此方案的优点是配置简单,性能还可以,缺点是与宿主机现有网络混淆在一起,失去了灵活性。

你可能感兴趣的:(Docker跨主机容器通信(1))