使用Docker for Mac创buildswarm群集

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

而不是在一些真正的Linux主机或本地虚拟机上运行它,我想连接一对运行Docker for Mac的MacBook。

在教程之后,我在两台机器上安装了Docker for Mac。 在第一台机器的docker群创build工作,并创build一个哈希和ID。

进行到第二台机器我执行连接命令从一个粘贴到另一个。

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

所以在我看来,我从根本上误解了本教程的目标,或者如何设置两个Mac,以便他们可以沟通。 通过search解决scheme,似乎有几种可能性,我需要做什么:

运行一个分布式kv存储来帮助swarmnetworking协调(但是这不是新编排的要点吗?)在每台机器上build立一个从networking适配器到高山linux docker守护进程的端口隧道放弃并testing我的集群本地

更新:经过一些更多的研究,似乎我应该使用本指南创build覆盖networking。 但是这个指南使用docker机器。 据我了解,我应该/不能使用docker机与Docker for Mac,或者是不正确的?

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

您必须build立一个端口通道,将VM内的docker守护进程端口提升为主机networking接口。 要检查是否可以访问另一台机器的守护进程,请使用https:// otherMachineIp:DaemonPort / v1 / _ping 。 如果这个成功,你可以到达另一个守护进程来build立一个群。

顺便说一句,只要你在同一个docker版本,使用Docker for Mac和docker-machine在一起不应该造成问题。

但是这个指南使用docker机器。

这不应该是一个问题:每次你在教程中看到

将您的环境指向Swarm主站。

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

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

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

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

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

从Docker 1.12开始,这是不可能的。 它可能会在更高版本的工作。