在Docker swarm中使用compose

本文介绍了如何在Docker Swarm集群中使用Compose。在Swarm中构建image需将其上传至镜像仓库以供多节点使用。面对多依赖服务,如foo依赖于bar和baz,需要手动设置部署约束以确保它们在同一节点。此外,解决主机端口冲突可通过命名volume或清理遗留状态。最后,讨论了自动调度与手动调度策略在Compose中的应用。
摘要由CSDN通过智能技术生成

前文介绍如何在单独Docker环境下使用compose,本文介绍如何在swarm集群中使用compose。

限制

image构建

在swarm中构建image与单机版一样,使用相同的命令。但是构建完成的image只存在于当前主机,如果运行镜像的多个实例,并且这些实例分布在集群中的不同节点上,那么就需要分发构建好的镜像,一个节点不会共享另一个节点上已经构建好的镜像。解决办法为首先在某个节点上构建image,然后再将image上传到镜像仓库,然后在compose的定义文件中从仓库引用此镜像。救命如下:

$ docker build -t myusername/web .
$ docker push myusername/web

$ cat docker-compose.yml
web:
  image: myusername/web

$ docker-compose up -d
$ docker-compose scale web=3

多依赖

如果某个应用有多个服务组成,如下例:

version: "2"
services:
  foo:
    image: foo
    volumes_from: ["bar"]
    network_mode: "service:baz"
  bar:
    image: bar
  baz:
    image: baz

上例中,foo的volume依赖于bar,foo的网络与baz共享,实例这三个服务必需部署在同一个节点上才行,也就是foo明确依赖于bar与baz。在部署时的实际调度中,如果依次先部署foo,那么系统会发现它依赖于bar与baz,然后系统在同

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值