在 Vagrant 中创建一个 docker swarm 集群

Creating a docker swarm cluster in Vagrant

我正在尝试在 Vagrant 中创建一个由不同 ubuntu VM 运行 组成的集群。 它们通过启动它们的 vagrant 文件启用了 docker。在这三个虚拟机中,我通过以下方式在一台机器上启动了 swarm 集群

docker pull swarm
docker run --rm swarm create

这返回了一个唯一的 cluster_id。在另一个 docker 启用的虚拟机上,我执行了以下步骤

  1. 停止 docker 守护进程

    sudo service docker stop

  2. 用-H标志启动守护进程

    sudo docker -H tcp://0.0.0.0:2375 -d

这给出了以下

    INFO[0000] +job init_networkdriver()
    INFO[0000] +job serveapi(tcp://0.0.0.0:2375)
    INFO[0000] Listening for HTTP on tcp (0.0.0.0:2375)
    INFO[0000] /!\ DON'T BIND ON ANY IP ADDRESS WITHOUT setting -tlsverify IF        YOU DON'T KNOW WHAT YOU'RE DOING /!\
    INFO[0000] -job init_networkdriver() = OK (0)
    INFO[0000] Loading containers: start.

    INFO[0000] Loading containers: done.
    INFO[0000] docker daemon: 1.6.2 7c8fca2; execdriver: native-graphdriver:aufs
    INFO[0000] +job acceptconnections()
    INFO[0000] -job acceptconnections() = OK (0)
    INFO[0000] Daemon has completed initialization

在此之后我开始与该节点的另一个会话并想要 运行 运行 以下命令:

sudo docker run -d swarm join --addr=<node_ip:2375> token://<cluster_id>

本例中的节点ip是多少?在这个 VM 上使用 arp -an 给我三个 IP,其中一个是可访问的

如评论swarm/discovery所示:

# on each of your nodes, start the swarm agent
#  <node_ip> doesn't have to be public (eg. 192.168.0.X),
#  as long as the swarm manager can access it.
$ swarm join --addr=<node_ip:2375> token://<cluster_id>

node_ip集群新节点的ip地址