Main Reference:https://marshal.ohtly.com/2016/12/19/create-simple-service-with-docker-swarm-mode/
创建Swarm
上面创建了3个节点。计划让:
-
t1作为manager节点,swarm的操作命令只能在manager节点上执行 -
t2和t3作为worker节点
可通过docker-machine的ssh命令无需密码登录到t1节点:
|
|
在t1节点创建swarm:
|
|
执行后会输出类似这样的结果:
|
|
退出t1,再次通过docker-machine ssh命令登录到t2和t3,执行上述命令加入到t1创建的swarm中,即:
|
|
然后,再次登录t1,可通过如下命令查看swarm加入的情况:
|
|
创建服务
在t1节点,执行命令创建服务:
|
|
这个命令类似docker的run命令:
|
|
区别是,docker run命令只在当前docker服务器上创建容器,docker service create将在创建的swarm中创建容器。上面创建服务的命令只跑了1个服务实例:
|
|
虽然服务只部署在swarm其中一个节点,但无论访问其中哪个节点,都可获得服务:
|
|
原因是未部署服务的节点会自动转发请求到服务所在的节点上去。
改变服务的实例数
下面命令将目前1个实例数改为3个:
|
|
可以通过docker service ps命令查看具体节点上服务的状态:
|
|
当服务实例失效后swarm自动创建新服务实例
执行:
|
|
让当前实例数为2。
执行:
|
|
发现t2和t3上有部署服务,停掉t3节点:
|
|
然后在t1上执行:
|
|
发现运行的服务实例还是2个,说明swarm的自动创建新服务实例功能是有效的。
我的 Docker 版本是 1.12,請問我跑的是一代 Swarm 還是二代 Swarm 啊?
……自己運行的 Swarm 怎麼會連自己都不知道跑的是啥?

京公网安备 11010502036488号