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