如何在多台远程机器上使用docker swarm设置多主机networking

在问这个问题之前,我已经阅读了安静的文章和stackoverflow的问题,但我无法得到正确的答案我的设置(也许它已经被回答)。 这是我一直在努力使其工作的架构。

  1. 我有三个物理机器,我想要设置多主机networking的Docker群,以便我可以运行docker-compose。

例如:

  1. 机器1(Docker Swarm Manager和Contains 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在相同的物理机器下安装的。 我如何在三台远程机器上实现以上function。 任何帮助赞赏。

Docker的最新版本内置了Swarm模式 ,所以你不需要Consul。

要设置你的盒子,确保它们都有1.12或更高的docker version ,然后你只需要初始化群体并join它。

在机器1上运行:

 docker swarm init --advertise-addr 192.168.5.11 

从那里的输出将告诉你在机器2和3上运行的命令将它们join到群体中。 你将有一个独特的群集令牌,命令是这样的:

 docker swarm join \ --token SWMTKN-1-49nj1... \ 192.168.5.11:2377 

现在你有一个3节点群。 回到机器1上,您可以创build多主机覆盖networking:

 docker network create -d overlay my-app 

然后通过部署服务在networking中运行工作负载。 如果你想在Swarm模式下使用Compose,你需要使用分布式应用程序包 – 目前只在Docker的实验版本中。