钟声响了! Docker v1.13发布了!
在与Docker相关的讨论和研讨会期间,我收到的最常见问题通常与Swarm和Compose有关。
有人 :如何在Docker Swarm中使用Docker Compose?
我 :你不能! 您可以将Compose文件转换为不支持所有Swarm功能的捆绑软件。 如果要充分利用Swarm,请为docker service create
命令做好准备, docker service create
命令包含docker service create
无休止的参数列表。
这样的回答通常令人失望。 Docker Compose向我们展示了在YAML文件中指定所有内容的优势,而不是试图记住我们必须传递给docker
命令的所有参数。 它使我们能够将服务定义存储在存储库中,从而提供了可重复且记录良好的流程来管理它们。 Docker Compose替换了bash脚本,我们喜欢它。 然后,Docker v1.12出现并在我们面前摆出了一个艰难的选择。 我们应该采用Swarm并丢弃Compose吗? 自2016年夏季以来,Swarm和Compose不再相爱了。 离婚很痛苦。
但是,在分离了将近半年之后,他们又回来了,我们可以见证他们的第二次蜜月。 种类…我们不需要Swarm服务的Docker Compose二进制文件,但是我们可以使用其YAML文件。
Docker Engine v1.13引入了对stack
命令中Compose YAML文件的支持。 同时,Docker Compose v1.10引入了其格式的新版本3。 它们一起使我们能够使用已经熟悉的Docker Compose YAML格式管理Swarm服务。
我将假设您已经熟悉Docker Compose,并且不会详细介绍我们可以使用它进行的所有操作。 相反,我们将通过一个示例创建一些Swarm服务。
我们将探索如何通过Docker Compose文件和docker stack deploy
命令创建Docker Flow Proxy服务。
要求
以下示例假定您使用的是Docker v1.13 +,Docker Compose v1.10 +和Docker Machine v0.9 +。
如果您是Windows用户,请运行Git Bash (通过Docker Toolbox安装)中的所有示例。 另外,请确保将您的Git客户端配置为检出代码AS-IS 。 否则,Windows可能会将回车符更改为Windows格式。
群集群设置
要使用Docker Machine设置Swarm集群示例,请运行以下命令。
如果您已经有可以使用的Swarm集群,请随时跳过本节。
curl -o swarm-cluster.sh \
https://raw.githubusercontent.com/
vfarcic/docker-flow-proxy/master/scripts/swarm-cluster.sh
chmod +x swarm-cluster.sh
./swarm-cluster.sh
docker-machine ssh node-1
<