使用Docker for Mac创建一个swarm集群

时间:2016-07-23 03:15:18

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

我一直在尝试按照本教程:https://docs.docker.com/engine/swarm/swarm-tutorial/

我没有在一些真正的Linux主机或本地虚拟机上运行它,而是想要运行几台运行适用于Mac的Docker桌面的MacBook。

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

继续第二台机器,我通过将其从一个粘贴到另一个来执行join命令。

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

所以在我看来,我从根本上误解了教程的目的,或者如何设置两台Mac,以便他们可以进行通信。通过Google搜索解决方案,似乎我需要做几件事:

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

更新:经过一些研究后,似乎我应该使用本指南创建一个覆盖网络。但本指南使用的是docker-machine。据我所知,我应该/不能使用docker-machine和Docker桌面用于Mac,或者这是不正确的?

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

3 个答案:

答案 0 :(得分:3)

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

BTW只要你使用的是Docker版本,使用Docker for Mac和docker-machine就不会引起问题。

答案 1 :(得分:0)

  

但本指南使用的是docker-machine。

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

  

将您的环境指向Swarm主站。

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

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

  

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

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

同样,您切换到其他mac来执行其他docker命令。

答案 2 :(得分:0)

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