在问这个问题之前,我已经阅读了一些文章和 stackoverflow 问题,但我无法获得适合我的设置的正确答案(也许它已经得到解答)。这是我一直在努力让它工作的架构。
- 我有三台物理机,我想设置具有多主机网络的 Docker swarm,以便我可以运行 docker-compose。
例如:
- 机器 1(Docker Swarm Manager 并包含 Consoul)(192.168.5.11)
- 机器 2(Docker Swarm 节点)(192.168.5.12)
- 机器 3(Docker Swarm 节点)(192.168.5.13)
我需要从任何其他单独的机器运行 docker-compose。
我已经尝试过Docker article但在那篇文章中,所有设置都是使用 docker-machine 和虚拟机在同一物理机下进行的。我怎样才能在三台远程机器上实现上述目标。任何帮助表示赞赏。
最佳答案
最新版本的 Docker 有 Swarm Mode内置的,所以你不需要 Consul。
要在您的机器上进行设置,请确保它们的 docker 版本
均为 1.12 或更高版本,然后您只需初始化 swarm 并加入它即可。
在机器 1 上运行:
docker swarm init --advertise-addr 192.168.5.11
输出将告诉您在机器 2 和 3 上运行的命令,以将它们加入到集群中。您将拥有一个独特的群体 token ,命令类似于:
docker swarm join \
--token SWMTKN-1-49nj1... \
192.168.5.11:2377
现在您有一个 3 节点群。返回机器 1,您可以创建一个多主机覆盖网络:
docker network create -d overlay my-app
然后您可以通过 deploying services 在网络中运行工作负载。如果你想使用 Swarm 模式的 Compose,你需要使用 distributed application bundles - 目前仅处于 Docker 的实验版本中。
关于docker - 如何在多台远程机器上使用 docker swarm 设置多主机网络,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39844880/