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

Paste_Image.png

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 转载自 http://blog.opskumu.com/docker.html 一、Docker 简介 Docke...
    极客圈阅读 10,524评论 0 120
  • Docker — 云时代的程序分发方式 要说最近一年云计算业界有什么大事件?Google Compute Engi...
    ahohoho阅读 15,595评论 15 147
  • 五、Docker 端口映射 无论如何,这些 ip 是基于本地系统的并且容器的端口非本地主机是访问不到的。此外,除了...
    R_X阅读 1,787评论 0 7
  • 天气渐暖,眼看新房六月就要到手了,为了拿到新房能即刻开工,本装修界小白已早早准备起来了。买了简简单单龙猫的本子和笔...
    冬芳未萌阅读 213评论 0 0
  • 精神家园的词语释义,叫做心灵获得安慰的地方精神寄托之所。精神家园之说据说是来源于一个故事:传说中讲一个永世流浪的小...
    辛平阅读 806评论 0 3