docker swarm 和compose部署服务,解决跨主机网路问题和ip不固定问题(一)

一  要求: docker版本13以上;compose版本11以上;关闭防火墙和selinux

二  composev3版本加入了很多功能,现在我肯可以很方便的结合docker swarm 和compose来完成不同主机之间的通信问题

三 准别2台虚机,安装docker ,配置docker swarm 集群,截图如下:

docker <wbr>swarm <wbr>和compose部署服务,解决跨主机网路问题和ip不固定问题(一)
四   本次试验只是演示环境,用了同一个镜像文件,但是不影响试验效果

test1 主机compose文件配置如下

docker <wbr>swarm <wbr>和compose部署服务,解决跨主机网路问题和ip不固定问题(一)
注意内容:

1)networks: 在 compose file V3中, 允许我们通过networks关键字定义一个基于 Docker0 网络的 subnet。然后将我们的服务添加到这个subnet中。这样做的好处实现了服务之间的隔离,一旦我们不需要这组服务了,我们可以通过命令“docker-compose down” 卸载服务和对应的subnet,他不会对其他的服务造成影响。

 

docker-compose up -d 生成容器的同时,来看docker的网络变化

docker <wbr>swarm <wbr>和compose部署服务,解决跨主机网路问题和ip不固定问题(一)

test2 compse主机的配置文件如下

docker <wbr>swarm <wbr>和compose部署服务,解决跨主机网路问题和ip不固定问题(一)
注意内容:

1) 由于之前我们test1已经创建了网络,这里只需要指定external:true (不需要在创建了),在container里面加入即可

2)我们直接运行 docker-compose up -d 会报错,内容大致为找不到指定的网络,这是因为我们之前在test1上面创建的network不会自动在更新到test2 上面(官方说法),所以需要我们在test2上面运行一个container让其加入网络“ceshi_YuGuangWei”

 

在没有穿件容器之前,我们来看test2中容器的网络,并没有ceshi_YuGuangWei网络

docker <wbr>swarm <wbr>和compose部署服务,解决跨主机网路问题和ip不固定问题(一)
创建一个带ceshi_YuGuangWei网络的容器,再来查看容器的网络

docker <wbr>swarm <wbr>和compose部署服务,解决跨主机网路问题和ip不固定问题(一)

现在,再来执行compose文件就行了

docker <wbr>swarm <wbr>和compose部署服务,解决跨主机网路问题和ip不固定问题(一)
我们更改test2中 容器的nginx首页的代码给为yuguangwei 来访问以下

在 test1中mysql容器中访问

 docker <wbr>swarm <wbr>和compose部署服务,解决跨主机网路问题和ip不固定问题(一)
可以看到访问成功

此种方法不仅可以解决容器之间跨主机网络的问题,也能忽略ip不固定的问题


 

compse.yml 文件补充解释

docker <wbr>swarm <wbr>和compose部署服务,解决跨主机网路问题和ip不固定问题(一)

false代表网桥不存在,启动容器时自动创建,true代表网桥存在,直接使用,启动容器是不创建

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值