Docker swarm 常用命令

来自ling
跳转至: 导航搜索
docker node rm

本质是调用SwarmKit(Swarmkit在Docker1.12后会打包在docker的发行版里,会启动一个swarmkit的daemon进程监听主机上的2377端口)的RemoveNode接口,swarmkit会在其raft store删除这个Node的数据

docker node demote

本质是调用SwarmKit的UpdateNode接口,把role从master改成worker

docker swarm leave

判断还剩下的master数量是否是安全的,如果不是会报错 把当前的swarm node停止 把当前node上所有的swarm mode启动的container停止 清除掉swarm保存在机器上的log文件 把daemon设置成非swarm mode,并把attachment上的network删掉 从实现原理来看,swarm leave== node demote + node rm 但是从测试结果发现,swarm leave后这个node就变成unreachable的状态了。。。并不会从node列表中消失,因此,正确的删除姿势就是node demote -> node rm,虽然docker有的文档中提到了swarm leave,但其实并不正确,呵呵。。

docker config

管理配置文件 docker config

查看已创建配置文件

docker config ls

将已有配置文件添加到docker配置文件中

docker config create docker 配置文件名 本地配置文件


docker node

管理swarm节点

docker node

查看集群中的节点

docker node ls

将manager角色降级为worker docker node demote 主机名 将worker角色升级为manager

docker node promote 主机名

查看节点的详细信息,默认json格式

docker node inspect 主机名

查看节点信息平铺格式

docker node inspect --pretty 主机名

查看运行的一个或多个及节点任务数,默认当前节点

docker node ps

从swarm中删除一个节点

docker node rm 主机名

更新一个节点

docker node update

对节点设置状态(“active”正常|“pause”暂停|“drain”排除自身work任务)

docker node update --availability


docker secret

管理敏感数据存储

docker secret

docker stack

服务栈,栈的形式,一般作为编排使用,格式与docker compose相同。

docker stack

通过.yml文件指令部署

docker stack deploy -c 文件名.yml 编排服务名

查看编排服务

docker stack ls

docker stack 不支持使用参数

docker swarm

作为集群的管理

docker swarm

初始化一个swarm

docker swarm init

指定初始化ip地址节点

docker swarm init --advertise-addr 管理端IP地址

去除本地之外的所有管理器身份

docker swarm init --force-new-cluster

将节点加入swarm集群,两种加入模式manager与worker

docker swarm join

工作节点加入管理节点需要通过join-token认证

docker swarm join-token

重新获取docker获取初始化命令

docker swarm join-token worker

离开swarm

docker swarm leave

对swarm集群更新配置

docker swarm update


docker service

服务管理

docker service

创建一个服务

docker service create

创建的副本数

docker service create --replicas 副本数

指定容器名称

docker service create --name 名字

每次容器与容器之间的更新时间间隔。

docker service create --update-delay s秒

更新时同时并行更新数量,默认1

docker service create --update-parallelism 个数

任务容器更新失败时的模式,(“pause”停止|”continue“继续),默认pause。

docker service create --update-failure-action 类型

每次容器与容器之间的回滚时间间隔。

docker service create --rollback-monitor 20s

回滚故障率如果小于百分比允许运行

docker service create --rollback-max-failure-ratio .数值(列“.2”为%20)

添加网络

docker service create --network 网络名

创建volume类型数据卷

docker service create --mount type=volume,src=volume名称,dst=容器目录

创建bind读写目录挂载

docker service create --mount type=bind,src=宿主目录,dst=容器目录

创建bind只读目录挂载

docker service create --mount type=bind,src=宿主目录,dst=容器目录,readonly

创建dnsrr负载均衡模式

docker service create --endpoint-mode dnsrr 服务名

创建docker配置文件到容器本地目录

docker service create --config source=docker配置文件,target=配置文件路径

创建添加端口

docker service create --publish 暴露端口:容器端口 服务名

查看服务详细信息,默认json格式

docker service inspect

查看服务信息平铺形式

docker service inspect --pretty 服务名

查看服务内输出

docker service logs

列出服务

docker service ls

列出服务任务信息

docker service ps    

查看服务启动信息

docker service ps 服务名

过滤只运行的任务信息

docker service ps -f "desired-state=running" 服务名

删除服务

docker service rm

缩容扩容服务

docker service scale

扩展服务容器副本数量

docker service scale 服务名=副本数

更新服务相关配置

docker service update

容器加入指令

docker service update --args “指令” 服务名

更新服务容器版本

docker service update --image 更新版本 服务名

回滚服务容器版本

docker service update --rollback 回滚服务名

添加容器网络

docker service update --network-add 网络名 服务名

删除容器网络

docker service update --network-rm 网络名 服务名

服务添加暴露端口

docker service update --publish-add 暴露端口:容器端口 服务名

移除暴露端口

docker service update --publish-rm 暴露端口:容器端口 服务名

修改负载均衡模式为dnsrr

docker service update --endpoint-mode dnsrr 服务名

添加新的配置文件到容器内

docker service update --config-add 配置文件名称,target=/../容器内配置文件名 服务名


复制代码 1创建配置文件

docker config create nginx2_config nginx2.conf 

2删除旧配置文件

docker service update --config-rm ce_nginx_config 服务名

3添加新配置文件到服务

ocker service update --config-add src=nginx2_config,target=/etc/nginx/nginx.conf ce_nginx

复制代码 删除配置文件

docker service update --config-rm 配置文件名称 服务名

强制重启服务

docker service update --force 服务名