docker swarm 基本使用

创建swarm群集

创建master

1
2
3
4
docker swarm init --advertise-addr 10.0.20.120
docker swarm join \
--token SWMTKN-1-02y9gnveum01uebaopuevu6x2a2bzmlewecl456yna68voo644-cwsyt4ia47c56bngjhonn8p01 \
10.0.20.120:2377

node加入群集

1
2
3
docker swarm join \
--token SWMTKN-1-02y9gnveum01uebaopuevu6x2a2bzmlewecl456yna68voo644-cwsyt4ia47c56bngjhonn8p01 \
10.0.20.120:2377
  • docker swarm join-token worker 显示作为 worker 加入该集群的指令
  • docker swarm join-token manager 显示作为 manager 加入该集群的指令

查看节点

1
2
3
4
5
docker node ls
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS
75amwwun5n62nu9xeoifoz5sj node2 Ready Active
8ccaopsskb1ae12hwriyhcq3t * localhost.localdomain Ready Active Leader
be648c6u6y54ywnxjz4wlr3ap node1 Ready Active

node状态变更

Node的AVAILABILITY有三种状态:ActivePauseDrain

常见的变更操作:

  • 设置Manager Node只具有管理功能
  • 对服务进行停机维护,可以修改AVAILABILITYDrain状态
  • 暂停一个Node,然后该Node就不再接收新的Task
  • 恢复一个不可用或者暂停的Node

例如,使Manager Node只具备管理功能,不能部署实际的Docker容器来运行服务,执行如下命令:

1
docker node update --availability drain manager

Node添加标签元数据

1
docker node update --label-add 键名称=值 node

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器