docker容器集群服务
目录
节点
Service
Task
命令
详情
查看集群信息
创建集群
加入集群
使用集群
创建一个服务
查看服务
伸缩
使用外部地址访问
更新集群
离开集群
使用服务
查看应用详情
获取服务或任务日志信息
列出服务信息
列出服务包含的任务信息
删除指定任务
回滚服务
横向扩展调整
更新服务
节点
节点node是swarm集群的最小·单位,每个节点是一个docker主机
管理节点,响应外部对集群的操作,维持集群资源
工作节点,执行节点安排的具体任务
Service
一个服务是任务的定义,管理机或工作节点上执行。它是群体系统的中心结构,是用户与群体交互的主要根源。创建服务时需要指定要使用的容器镜像。
Task
任务是在docekr容器中执行的命令,Manager节点根据指定数量的任务副本分配任务给worker节点
命令
docker swarm ca
docker swarm init 在管理节点上创建一个新的集群(初始化一个群集(Swarm))
docker swarm join 加入一个新节点到已有集群
docker swarm join-token 管理加入令牌
docker swarm leave 离开一个swarm集群
docker swarm unlock 解锁群集(Swarm)
docker swarm unlock-key 管理解锁钥匙
docker swarm update 更新一个swarm集群
docker service create 创建应用
docker service inspect 查看服务详情
docker service update 更新服务
docker service ls 列出服务信息
docker service logs 获取服务或任务日志信息
docker service ps 列出服务包含的任务信息
docker service rm 删除服务
docker service rollback 回滚服务
docker service scale 横向调整服务
docker node accept
docker node promote 将一个或多个节点推入到群集管理器中
docker node demote 群集管理器中降级一个或多个节点
docker node inspect 显示一个或多个节点的详细信息
docker node update 更新一个节点
docker node tasks
docker node ls 列出 swarm 群集中的节点
docker node rm 从 swarm 群集删除一个或多个节点
docker node ps 列出在一个或多个节点上运行的任务,默认为当前节点
详情
docker swarm init
名称,简写 默认 描述
.--advertise-addr 播发地址(格式:<ip/interface>[:port]
.--autolock FALSE 启用管理员自动锁定(需要解锁键启动停止的管理器)
.--availability string
.--cert-expiry 2160h0m0s 节点证书的有效期(ns/us/ms/s/m/h)
.--data-path-addr string
.--data-path-port uint32
.--default-addr-pool ipNetSlice
.--default-addr-pool-mask-length uint32
.--dispatcher-heartbeat 5s 调度心跳周期(ns/us/ms/s/m/h)
.--external-ca 一个或多个证书签名端点的规范
.--force-new-cluster FALSE 强制从当前状态创建一个新的群集(Swarm)
.--listen-addr 0.0.0.0:2377 监听地址(格式:<ip / interface> [:port])
.--max-snapshots 0 要保留的额外的筏子快照数量
.--snapshot-interval 10000 筏子快照之间的日志条目数
.--task-history-limit 5 任务历史保留限制
示例:
docker swarm init --advertise-addr ip:2377 --listen-addr ip:2337
docker swarm init --advertise-addr=192.168.0.142
docker swarm join
名称,简写 默认 描述
.--advertise-addr 播发地址(格式:<ip / interface> [:port]))
.--listen-addr 0.0.0.0:2377 监听地址(格式:<ip / interface> [:port])
.--token 加入群组的令牌
查看集群信息
docker info
创建集群
docker swarm init
加入集群
docker swarm join --token …...
(docker info可查询token)
使用集群
1.使用原docker原客户端命令
2.使用docker service命令
创建一个服务
docker service create --replicas 2 --name n nginx
查看服务
docker service ls
docker service inspect --pretty n
docker service ps n
伸缩
对服务进行伸缩,复制个数2变1
docker service scale n=1
对服务进行伸缩,复制个数为3
docker service scale n=3
使用外部地址访问
swarm通过路由机制支持服务对外映射到指定端口,该端口可以在集群中任意节点进行访问,即使该节点没有运行服务实例。使用--publish参数
docker service create --name na --publish ... nginx
更新集群
docker swarm update
.--autolock 启动或关闭自动锁定
.--cert-expiry duration 根证书过期时长,默认90天
.--dispatcher-heartbeat du 分配组件的心跳时长,默认5s
.--external-ca external-ca 指定使用外部的证书签名服务地址
.--max-snapshots uint raft协议快照保留个数
.--snapshot-interval uint raft协议进行快照的间隔(单位为事务个数)默认10000个
.--task-history-limit int 任务历史的保留个数,默认5个
离开集群
docker swarm leave
.-f .--force 强制离开集群
使用服务
创建一个应用
docker service create --replicas 2 --name n nginx
.--config config 指定暴露给服务的配置
.--constraint list 应用实例在集群中被放置时的位置限制
.--container-label list 容器标签
.--credential-spec credential-spec
.-d, --detach 立即退出而不是等待服务收敛
.--dns list 指定DNS
.--dns-option list 设置DNS选项
.--dns-search list 设置DNS搜索域
.--endpoint-mode string 端点模式 (vip or dnsrr) (default "vip")
.--entrypoint command 覆盖镜像的默认ENTRYPOINT
.-e, --env list 设置环境变量
.--env-file list 从配置文件读取环境变量
.--generic-resource list
.--group list
.--health-cmd string 健康检查命令
.--health-interval duration 健康检查间隔 (ms|s|m|h)
.--health-retries int 报告不健康需要连续失败次数
.--health-start-period duration 在重试计数到不稳定之前,开始容器初始化的时间段(ms|s|m|h)
.--health-timeout duration 允许一次健康检查最长运行时间 (ms|s|m|h)
.--host list 设置一个或多个自定义主机到IP映射 (host:ip)
.--hostname string 容器名称
.--init 在每个服务容器中使用init来转发信号并收集进程
.--isolation string 服务容器隔离模式
.-l, --label list 服务标签
.--limit-cpu decimal CPU限制
.--limit-memory bytes 内存限制
.--log-driver string
.--log-opt list
.--mode string
.--mount mount
.--name string 服务名称
.--network network 网络
.--no-healthcheck
.--no-resolve-image
.--placement-pref pref
.-p, --publish port 发布端口
.-q, --quiet 简化输出
.--read-only 将容器的根文件系统挂载为只读
.--replicas uint 同时运行的副本数
.--replicas-max-per-node uint
.--reserve-cpu decimal 为本服务需要预留的CPU资源
.--reserve-memory bytes 为本服务需要预留的内存资源
.--restart-condition string 满足条件时重新启动("none"|"on-failure"|"any") (default "any")
.--restart-delay duration 重启尝试之间的延迟 (ns|us|ms|s|m|h) (default 5s)
.--restart-max-attempts uint Maximum number of restarts before giving up
.--restart-window duration
.--rollback-delay duration 任务回滚之间的延迟(ns|us|ms|s|m|h) (default 0s)
.--rollback-failure-action string
.--rollback-max-failure-ratio float 回滚期间容忍的失败率(default 0)
.--rollback-monitor duration 每次任务回滚后监视失败的持续时间 (ns|us|ms|s|m|h) (default 5s)
.--rollback-order string 回滚选项("start-first"|"stop-first") (default "stop-first")
.--rollback-parallelism uint 同时回滚的最大任务数(0表示一次回滚)(默认值为1)
.--secret secret 指定要公开给服务的秘钥
.--stop-grace-period duration
.--stop-signal string 发出信号停止容器
.--sysctl list
.-t, --tty 分配伪终端
.--update-delay duration 更新之间的延迟(ns|us|ms|s|m|h) (default 0s)
.--update-failure-action string 更新失败后选项("pause"|"continue"|"rollback") (default "pause")
.--update-max-failure-ratio float 更新期间容忍的故障率(默认为0)
.--update-monitor duration 每次更新任务后监视失败的持续时间(ns | us | ms | s | m | h)(默认为5s)
.--update-order string 更新选项 ("start-first"|"stop-first") (default "stop-first")
.--update-parallelism uint 同时更新的最大任务数(0表示一次更新所有任务)(默认值为1)
.-u, --user string 将注册表验证详细信息发送给swarm代理
.--with-registry-auth
.-w, --workdir string 指定容器内工作目录(workdir)
查看应用详情
docker service inspect --pretty n
.-f, --format string 使用给定的Go模板格式化输出
.--pretty 以人性化的格式打印信息
获取服务或任务日志信息
docker service logs n
.--details 输出所有的细节日志信息
.-f, --follow 持续输出日志,相当于`<code>tail -f</code>`
.--no-resolve 不要将容器名称输出到日志,而使用CONTAINER ID
.--no-task-ids 不要将task ID=任务id输出到日志
.--no-trunc 不要截断输出
.--raw 不要整齐地格式化日志(会将前边的容器ID信息等去掉,只保留原始日志内容)
.--since string 显示自时间戳(例如2013-01-02T13:23:37)或相对(例如42分钟42分钟)以来的日志
.--tail string 从日志末尾显示的行数(默认为“全部”)
.-t, --timestamps 显示时间戳
列出服务信息
docker service ls
.-f, --filter filter 根据提供的条件过滤输出
.--format string 使用Go模板的漂亮打印服务
.-q, --quiet 只显示服务ID
列出服务包含的任务信息
docker service ps
.-f, --filter filter 只输出符合条件的任务
.--format string 按照go模板格式化输出
.--no-resolve 不将id映射为名称
.--no-trunc 不截断输出信息
.-q, --quiet 只输出id信息
删除指定任务
docker service rm
回滚服务
docker service rollback
.-d, --detach 执行后返回,不等待服务状态校验完成
.-q, --quiet 不显示执行进度信息
横向扩展调整
docker service scale
docker service scale n=1
.-d,.--detach 执行后返回,不等待服务状态校验完成
更新服务
docker service update
.--args command
.--config-add config
.--config-rm list
.--constraint-add list
.--constraint-rm list
.--container-label-add list
.--container-label-rm list
.--credential-spec credential-spec
.-d, --detach
.--dns-add list
.--dns-option-add list
.--dns-option-rm list
.--dns-rm list
.--dns-search-add list
.--dns-search-rm list
.--endpoint-mode string
.--entrypoint command
.--env-add list
.--env-rm list
.--force
.--generic-resource-add list
.--generic-resource-rm list
.--group-add list
.--group-rm list
.--health-cmd string
.--health-interval duration
.--health-retries int
.--health-start-period duration
.--health-timeout duration
.--host-add list
.--host-rm list
.--hostname string
.--image string
.--init
.--isolation string
.--label-add list
.--label-rm list
.--limit-cpu decimal
.--limit-memory bytes
.--log-driver string
.--log-opt list
.--mount-add mount
.--mount-rm list
.--network-add network
.--network-rm list
.--no-healthcheck
.--no-resolve-image
.--placement-pref-add pref
.--placement-pref-rm pref
.--publish-add port
.--publish-rm port
.-q, --quiet
.--read-only
.--replicas uint
.--replicas-max-per-node uint
.--reserve-cpu decimal
.--reserve-memory bytes
.--restart-condition string
.--restart-delay duration
.--restart-max-attempts uint
.--restart-window duration
.--rollback
.--rollback-delay duration
.--rollback-failure-action string
.--rollback-max-failure-ratio float
.--rollback-monitor duration
.--rollback-order string
.--rollback-parallelism uint
.--secret-add secret
.--secret-rm list
.--stop-grace-period duration
.--stop-signal string
.--sysctl-add list
.--sysctl-rm list
.-t, --tty
.--update-delay duration
.--update-failure-action string
.--update-max-failure-ratio float
.--update-monitor duration
.--update-order string
.--update-parallelism uint
.-u, --user string
.--with-registry-auth
.-w, --workdir string