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

标签 docker docker-compose docker-machine docker-swarm

在问这个问题之前,我已经阅读了一些文章和 stackoverflow 问题,但我无法获得适合我的设置的正确答案(也许它已经得到解答)。这是我一直在努力让它工作的架构。

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

例如:

  1. 机器 1(Docker Swarm Manager 并包含 Consoul)(192.168.5.11)
  2. 机器 2(Docker Swarm 节点)(192.168.5.12)
  3. 机器 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/

相关文章:

docker - 如何在jenkins管道中指向docker build命令的具体Dockerfile?

docker - 在几个本地服务中公开localhost端口

docker本地卷名的无效字符

docker - 一个 GCP 项目中的 Cloud Run 应用出现 HTTP 503 错误,而另一个项目中则没有

mongodb - 如何将卷添加到docker mongo容器

linux - 如何从本地主机连接到 docker 容器

docker : execute commands as a non-root user

docker - 如果我删除几行代码,Docker镜像大小就会增加

java - 如何在机器上的docker守护程序和Jenkins之间建立连接以执行docker命令?

带有自动 SSL 的 .NET Core Docker