1. 首先在master上运行docker swarm init
,运行成功后,会提示如下内容
To add a worker to this swarm, run the following command:
docker swarm join \
--token SWMTKN-1-1bdjqxs26cnm39s4fmgggailgg6dtntufh948oqex0becihtqh-0vu5hfkjxwzk7mjwkmqle8il6 \
192.168.0.151:2377
其中token可以使用docker swarm join-token worker
再次查看。
2. 然后在slave上运行上面输出的命令
docker swarm join \
--token SWMTKN-1-1bdjqxs26cnm39s4fmgggailgg6dtntufh948oqex0becihtqh-0vu5hfkjxwzk7mjwkmqle8il6 \
192.168.0.151:2377
这样slave就添加到master中了,在master上使用命令 docker node ls
可以查看当前集群的主机列表。
3. 接下来创建一个swarm网络,这样docker容器之间可以加入到这个网络里实现互联互通。
docker network create -d overlay --attachable <网络名>
4. 最后,在启动容器的时候,加入到刚刚创建的网络中就完成了,例如
在master上运行
docker run --name node1 -it --network <网络名> debian bash
在slave上运行
docker run --name node2 -it --network <网络名> debian bash
在容器内部,通过node1和node2域名就可以互相访问了。比如在node1中,可以使用ping node2来查看一下可以联通到node2上。