【问题标题】:Overlay network on Swarm Mode without Docker Machine在没有 Docker 机器的 Swarm 模式下覆盖网络
【发布时间】:2016-11-20 15:51:21
【问题描述】:

我目前有三台主机(docker1docker2docker3),我没有使用 Docker Machine 设置它们,每台都运行 v1.12-rc4 Docker 守护程序。

我在docker1 上运行docker swarm init,这又会打印一个docker swarm join 命令,我在docker2docker3 上运行该命令。此时,在每个主机上运行docker info 包含Swarm: active 行。

在这一点上,这种行为似乎与我过去使用独立 Swarm 容器时的行为有所不同。特别是,运行docker network ls 只会向我显示本地主机上的网络,并且在尝试创建覆盖网络时,工作节点似乎并不知道它(ie 它没有显示上他们的docker network ls。)

我觉得我错过了一些与 Swarm 模式的工作相关的重要信息,而不是 Swarm 容器。

在获得覆盖网络功能的同时,在 Docker 1.12 上设置这种集群没有 Docker Machine 的正确方法是什么?

【问题讨论】:

    标签: docker docker-swarm


    【解决方案1】:

    当我第一次开始使用它时,我也认为这是一个问题。

    这在 1.12rc4 中的工作方式略有不同 - 当您将容器部署到连接了该网络的 swarm 时,它也应该在其他节点上创建网络。

    希望这会有所帮助!

    【讨论】:

      【解决方案2】:

      问题

      您正在使用 docker 命令(用于与 localhost Docker 守护进程通信)而不是“swarm”命令(用于与 Swarm 主服务器通信)。

      解决方案

      这取决于你用来启动 Swarm 的命令。 this answer 详细介绍了完整的分步教程(包括有关如何部署覆盖网络的详细信息)。我相信阅读本文会对您有所帮助;)

      【讨论】:

      • 我已经访问过您提供的链接。虽然它有效,但它并没有解决我使用 1.12 版引入的 Swarm 模式的问题。还是我完全误解了这个功能?
      • Swarm 可以看作是一个 Docker 守护进程。使用命令docker 与本地 Docker 守护程序与 UNIX 套接字(默认情况下)进行通信。据我所知,您无法使用此命令创建群覆盖网络。您能否在问题中添加您遵循的流程的链接。
      【解决方案3】:

      对于 swarm 的网络范围,网络仅根据需要传播到工作节点。如果您使用该网络创建服务,并在该工作节点上安排该服务,则该网络将显示在 docker network ls 中。

      在即将发布的 1.13 版本中,您可以通过 docker network create --attachable ... 获得与非集群网络具有相似行为的网络。该网络对服务和普通容器都有效,并且对集群的所有成员都可用。从 1.13.0-rc2 开始,这些似乎没有出现在 docker network ls 的输出中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-07-22
        • 1970-01-01
        • 1970-01-01
        • 2017-10-11
        • 1970-01-01
        相关资源
        最近更新 更多