在问这个问题之前,我已经阅读了文章和stackoverflow问题的安静,但我无法为我的设置找到正确的答案(也许已经回答了)。这是我一直努力让它发挥作用的架构。
例如:
我需要从任何其他单独的机器运行docker-compose。
我已经尝试了Docker article但是在那篇文章中,所有这些都是使用docker-machine和virtual box在同一台物理机器下设置的。如何在三台远程机器上实现上述目标。任何帮助表示赞赏。
答案 0 :(得分:5)
最新版本的Docker内置了Swarm Mode,因此您不需要领事。
要设置您的方框,请确保它们都具有1.12或更高的docker version
,然后您只需要初始化群并加入它。
在机器1上运行:
docker swarm init --advertise-addr 192.168.5.11
该输出将告诉您在机器2和3上运行的命令以将它们连接到群组。您将拥有一个唯一的swarm令牌,命令类似于:
docker swarm join \
--token SWMTKN-1-49nj1... \
192.168.5.11:2377
现在你有一个3节点的群。回到机器1,您可以创建一个多主机覆盖网络:
docker network create -d overlay my-app
然后您通过deploying services在网络中运行工作负载。如果你想使用Compose with Swarm Mode,你需要使用distributed application bundles - 目前只在Docker的实验版本中。
答案 1 :(得分:0)
我认为这需要更新,因为docker swarm支持docker compose文件
使用
初始化机器1上的群docker swarm init --advertise-addr 192.168.5.11
加入机器2& 3使用
docker swarm join \
--token <swarm token from previous step> 192.168.5.11:2377 \
--advertise-addr eth0
--advertise-addr
选项,容器无法在主机之间相互通信。列出群组中的所有节点。看他们的状态
docker node ls
在此之后,从撰写文件
部署堆栈(服务组或容器组)docker stack deploy -c <compose-file> my-app
docker service ls
请参阅docker docs Getting started with swarm mode