如何在多台远程计算机上使用docker swarm设置多主机网络

Akr*_*bov 3 docker docker-compose docker-swarm docker-machine

在提出这个问题之前,我已经阅读了文章和stackoverflow问题的安静,但我无法为我的设置得到正确答案(也许已经回答了).这是我一直在努力让它发挥作用的架构.

  1. 我有三台物理机器,我想设置Docker swarm与多主机网络,以便我可以运行docker-compose.

例如:

  1. 机器1(Docker Swarm Manager并包含Consoul)(192.168.5.11)
  2. 机器2(Docker Swarm Node)(192.168.5.12)
  3. 机器3(Docker Swarm Node)(192.168.5.13)

我需要从任何其他单独的机器运行docker-compose.

我已经尝试过Docker文章,但在那篇文章中,它都是使用docker-machine和virtual box在同一台物理机器下设置的.如何在三台远程机器上实现上述目标.任何帮助赞赏.

Elt*_*man 5

最新版本的Docker 内置了Swarm模式,因此您不需要Consul.

要设置你的盒子,确保它们都有docker version1.12或更高,然后你只需要初始化群并加入它.

在机器1上运行:

docker swarm init --advertise-addr 192.168.5.11
Run Code Online (Sandbox Code Playgroud)

该输出将告诉您在机器2和3上运行的命令将它们连接到群.你将拥有一个独特的swarm令牌,命令如下:

docker swarm join \
--token SWMTKN-1-49nj1... \
192.168.5.11:2377
Run Code Online (Sandbox Code Playgroud)

现在你有一个3节点的群.回到机器1,您可以创建一个多主机覆盖网络:

docker network create -d overlay my-app
Run Code Online (Sandbox Code Playgroud)

然后通过部署服务在网络中运行工作负载.如果要使用Compose with Swarm Mode,则需要使用分布式应用程序包 - 目前仅在Docker的实验版本中.