Swarm 基础命令
常用命令
docker service create --replicas 1 -p port:port --name <name> <images> # 拉取 <image> 镜像, 名字是 <name>,端口映射, 副本数为 1 的服务
docker service scale xxx # 服务扩容|收缩
docker service rm xxx # 删除服务
docker service logs xxx # 查看服务日志
docker node ls # 查询集群节点状态
docker node promote xxx # 节点加权
docker node demote xxx # 节点降权
docker node rm xxx # 删除节点
docker node inspect xxx # 查看节点标签
docker node update --label-add role=web xxx # 节点加标签
docker node update --label-rm role xxx # 删除标签
配置运行时环境
为容器配置以下运行环境选项:
使用--env配置环境变量
使用--workdir配置容器工作目录
使用--user配置用户名或者uid
docker service create --name helloworld --env myvar=myvalue --workdir /tmp --user my_user alpine ping baidu.com
服务部署条件约束
某个节点打上标签后,可以把指定的服务运行在这个标签节点上
docker node update --label-add role=web swarm-01
docker service create \
--name nginx \
--constraint 'node.labels.role == web' \
nginx
打上污点
打上污点后,节点不可调度使用
docker node update --availability drain xxx
docker node update --availability Active xxx
docker node update --availability Pause xxx
docker node update --help
节点状态说明
Leader 主管理节点
Reachable 副管理节点,主不可用,通过选举,副升级为主
Unavailable 节点不可用
节点AVAILABILITY列说明
Active 意味着调度程序可以将任务分配给节点。
Pause 意味着调度程序不会将新任务分配给节点,但现有任务仍在运行。
Drain 意味着调度程序不会向节点分配新任务。调度程序关闭所有现有任务并在可用节点上调度它们。
Last updated