【问题标题】:Creating a swarm cluster with Docker for Mac使用 Docker for Mac 创建 swarm 集群
【发布时间】:2016-11-27 00:38:16
【问题描述】:

我一直在努力学习本教程:https://docs.docker.com/engine/swarm/swarm-tutorial/

我不想在一些真正的 linux 主机或本地虚拟机上运行它,而是想将几台运行 Docker 桌面 for Mac 的 MacBook 联网。

按照教程,我在两台机器上安装了适用于 Mac 的 Docker 桌面。在第一台机器上的终端中 docker swarm create 工作并创建一个 ca 哈希和 id。

在第二台机器上,我通过将连接命令从一台机器粘贴到另一台机器来执行它。

第二台机器无法连接。这是意料之中的,因为输出中显示的 IP 地址显然是虚拟机内部的 IP 地址,而不是我机器上的地址。我尝试通过指定本地网络适配器的地址从教程中转移,但它说它无法绑定到该地址。我知道所有端口都打开了,机器可以互相连接。

所以在我看来,我从根本上误解了本教程的目的或如何设置两台 Mac 以便它们可以通信。通过谷歌搜索解决方案,我需要做的似乎有几种可能性:

运行分布式 kv 存储以帮助 swarm 网络协调(但这不是新编排的重点吗?) 在每台机器上设置从网络适配器到 alpine linux docker daemon 的端口隧道 放弃并在本地测试我的集群

更新:经过更多研究,我似乎应该使用本指南创建一个覆盖网络。但本指南使用 docker-machine。据我了解,我应该/不能将 docker-machine 与 Docker desktop for Mac 一起使用,还是不正确?

https://docs.docker.com/engine/userguide/networking/get-started-overlay/

【问题讨论】:

    标签: docker docker-swarm docker-for-mac docker-desktop


    【解决方案1】:

    您必须设置端口隧道以将 VM 内的 docker 守护程序端口提升到主机网络接口。要检查您是否可以访问另一台机器的守护进程,请使用https://otherMachineIp:DaemonPort/v1/_ping。如果此操作成功,您可以访问其他守护进程来设置集群。

    顺便说一句,只要您使用相同的 docker 版本,一起使用 Docker for Mac 和 docker-machine 应该不会导致问题。

    【讨论】:

    • 能否提供设置port tunnel的链接?
    【解决方案2】:

    但本指南使用 docker-machine。

    这应该不是问题:每次你在the tutorial看到

    将你的环境指向 Swarm master。

    $ eval $(docker-machine env --swarm mhs-demo0)
    

    这只是意味着你应该在 swarm master(你的一个 mac)上执行下一个 docker 命令

    依次切换到每个 Swarm 代理并列出网络。

    $ eval $(docker-machine env mhs-demo0)
    

    同样,你切换到你的另一台 mac 来执行其他 docker 命令。

    【讨论】:

    • 这对我来说是主要的困惑。在使用 Docker for Mac 时,docker-machine 对在管理程序上运行的 docker 主机一无所知。所以“docker-machine env”返回一个错误,因为主机没有运行。
    • 我的观点是:每次看到docker-machine,不要使用docker-machine,而是直接在右边(物理)机器上docker命令
    【解决方案3】:

    从 Docker 1.12 开始,这是不可能的。它可能会在以后的版本中使用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多