如何在多台远程机器上设置多主机网络与docker swarm
问题描述:
在问这个问题之前,我已经阅读了无声的文章和stackoverflow的问题,但我无法为我的设置得到正确的答案(也许它已经回答了)。这是我一直在努力实现它的体系结构。如何在多台远程机器上设置多主机网络与docker swarm
- 我有三台物理机器,我想设置多主机网络的Docker群,以便我可以运行docker-compose。
例如:
- 机1(泊坞群管理器和包含Consoul)(192.168.5.11)
- 机2(泊坞群节点)(192.168.5.12)
- 机3 (Docker Swarm Node)(192.168.5.13)
而且我需要从任何其他单独的机器运行docker-compose。
我试过Docker article,但在那篇文章中,它使用docker-machine和virtual box在同一物理机器下进行设置。我如何在三台远程机器上实现上述目标。任何帮助赞赏。
答
最新版本的Docker内置了Swarm Mode,所以你不需要领事。
要设置您的箱子,请确保它们都具有1.12或更高的docker version
,然后您只需要初始化群体并加入它。
机器1个执行命令
docker swarm init --advertise-addr 192.168.5.11
的输出,将告诉你该命令在机器2和3运行,以将他们加入到群。您将拥有一个独特的群集令牌,并且该命令类似于:
docker swarm join \
--token SWMTKN-1-49nj1... \
192.168.5.11:2377
现在您拥有3节点群。返回机器1,您可以创建一个多主机覆盖网络:
docker network create -d overlay my-app
然后你通过deploying services运行在网络中的工作负载。如果你想使用Compose和Swarm模式,你需要使用distributed application bundles - 目前只有Docker的实验版本。
谢谢埃尔顿的答案。我已经在使用Compose,并且我不想使用分布式应用程序包。有没有办法在不同的主机上使用虚拟机设置群集模式? –
撰写不支持swarm模式 - 基本上只是做'码头运行',所以如果你使用它,一切都会在swarm中的一个节点上运行。 [这个项目](https://github.com/ddrozdov/docker-compose-swarm-mode)值得一看 - 它需要一个Compose YAML并使用'service create'来处理群集模式。 –