【问题标题】:Docker compose on docker swarm cluster separate containers on separate nodesDocker compose on docker swarm cluster 独立节点上的独立容器
【发布时间】:2015-11-03 13:02:01
【问题描述】:
运行 docker compose,它为数据库应用程序组合多个容器并登录 docker swarm 集群,使它们都在 docker swarm 的每个节点上运行。但需要的是传播它,例如我有 4 个节点,其中 3 个节点需要运行副本集和第四个应用程序。
我怎么能使用 docker compose 和 swarm 呢?或者可能需要一些其他工具。
【问题讨论】:
标签:
docker
docker-compose
docker-swarm
【解决方案1】:
要在单独的节点上运行,您需要使用 docker 1.9、swarm 1.0 和 compose 1.5 版本中的新 docker 网络。
如果您使用的是最新版本,您可以在每个节点上设置节点标签,并使用swarm constraints 将特定服务放置在特定节点上。
使用 compose 1.5.0,您需要使用 --x-networking 选项来启用多主机网络。
【解决方案2】:
如今,使用 docker-swarm 创建 Docker 多主机网络的正确方法是通过 overlay 网络驱动程序。
基本上,您使用docker-swarm 创建具有多个节点的集群,并使用overlay 驱动程序配置swarm 集群以支持多主机网络。
使用overlay driver 设置您的swarm cluster 后,您或docker-compose 将能够通过多个节点传播您的容器。
不幸的是,覆盖网络需要一些预先存在的条件才能创建,请在此处查看更多详细信息:
Get started with multi-host networking
测试:
- 码头工人 1.11.1
- 码头机器0.7.0
- docker-compose 1.7.0
- docker-swarm 1.2.1
注意:作曲家标志 --x-networking 已被弃用,并且此标志在 1.6 或更高版本中不再存在。