文章目录
-
- 基本命令
- 镜像相关
- 容器相关
- 数据卷相关
- 网络相关
- compose相关
- swarm相关
-
- docker swarm
- docker node
- docker service
-
- docker service create [OPTIONS] IMAGE [COMMAND] [ARG…]
- docker service ls [OPTIONS]
- docker service ps [OPTIONS] SERVICE [SERVICE…]
- docker service inspect [OPTIONS] SERVICE [SERVICE…]
- docker service logs [OPTIONS] SERVICE|TASK
- docker service scale SERVICE=REPLICAS [SERVICE=REPLICAS…]
- docker service update [OPTIONS] SERVICE
- docker service rollback [OPTIONS] SERVICE
- docker service rm SERVICE [SERVICE…]
- docker stack
基本命令
命令 | 说明 |
---|---|
docker version | 显示版本信息 |
docker info | 显示系统信息,包括镜像、容器数量 |
docker 命令 --help | 帮助 |
systemctl start docker | 启动docker |
systemctl enable docker | 开机自启动 |
镜像相关
docker images
查看本地主机上的镜像(默认-a)
docker images [OPTIONS] [REPOSITORY[:TAG]]
选项:
-a 列出所有镜像
-q 只打印镜像的ID
docker images [REPOSITORY[:TAG]] #查看指定镜像的信息
docker pull
下载镜像到本地,不指定Tag,默认为latest
docker pull 镜像名[:Tag]
docker rmi
删除镜像
docker rmi 镜像名[:Tag] #根据名字删除镜像
docker rmi 镜像ID #根据镜像ID删除
docker rmi -f 镜像ID #强制删除镜像(如果容器已经启动则需先停止后方可删除)
docker rmi -f $(docker images -aq) #批量删除所有镜像
docker rmi $(docker images -f "dangling=true" -q --no-trunc) #删除悬浮镜像(Tag值为<none>)
docker image prune -a --force --filter "until=48h" #删除48小时之前的镜像
docker image inspect --format='{
{.RepoTags}} {
{.Id}} {
{.Parent}}' $(docker image ls -q --filter since=镜像id) #查找镜像被哪些镜像引用了
如何删除none镜像 -> 删除none的镜像,要先删除镜像中的容器。要删除镜像中的容器,必须先停止容器!
-
停止容器(这是一句废话)
docker stop $(docker ps -a | grep "Exited" | awk '{print $1 }')
-
删除已经停止的容器
docker rm $(docker ps -a | grep "Exited" | awk '{print $1 }')
-
删除镜像
docker rmi $(docker images | grep "none" | awk '{print $3}')
docker run
docker run [选项] image
Eg:
docker run
-itd \
–privileged=true \
–name test \
–hostname test \
–restart unless-stopped \
–net=host \
–cpus=1 -m 512M \
-v /tmp:/tmp \
-w /opt \
-p 80:80 \
-e MYSQL_IP=192.168.1.1 \
–device=/dev/uhid \
docker.io/nginx:latest
-
-i
: 即使未连接STDIN(标准输入)也保持打开状态,分配一个交互终端 -
-t
:表示容器启动后会进入其命令行,与it一起使用。分配一个伪tty设备,可以支持终端登录 -
-d
:让容器在后台运行并打印容器的ID。如果你的容器启动会打印日志,那边加-d选项在终端就看不到了,需要用docker logs -f 容器ID 查看 -
--privileged
:授予此容器扩展特权,也就是开启特权模式;这种模式下容器对docker宿主机拥有root访问权限,允许我们以其宿主机具有(几乎)所有能力来运行容器,包括一些内核特性和设备访问,慎用 -
--name xxx
:给容器取一个名字,用docker ps可以查看 -
--rm
:退出容器后,容器会被删除,常用于测试 -
--hostname yyy
:设置容器里面的主机名,登陆到容器里面可以看到 -
--restart unless-stopped
:容器退出时的重启策略- no,默认策略,在容器退出时不重启容器
- on-failure,在容器非正常退出时(退出状态非0),才重启容器
- on-failure:3,在容器非正常退出时重启容器,最多重启3次
- always,在容器退出时总是重启容器
- unless-stopped,在容器退出时总是重启容器,如果容器正常stopped,然后机器重启或docker服务重启,容器将不会被restart
更改已运行容器的重启策略:docker update --restart=always 容器ID/容器名
-
--network bridge
:设置网络模式参数 含义 bridge 使用docker daemon指定的网桥,默认为docker0;使用–net=bridge指定,为默认设置 host 容器使用主机的网络 container:NAME_or_ID 使用其他容器的网络,共享IP和PORT等网络资源 none 容器使用自己的网络,使用–net=none指定 -
--link
:实现通过容器名访问docker run -d --name test2 --link test1 busybox sleep 3600
- test2容器可以直接ping通test1容器名,但test1不能ping通test2容器名
- 之所以能够Ping通,是因为把
test1的IP地址与容器名、主机名的映射
写入到了test2容器的/etc/hosts文件中
-
--cpus=1 -m 512M
:设置容器CPU和内存的使用上限 -
-v
:数据卷挂载时设置读写权限
- ro:只读,在容器内只读,只能通过宿主机来操作
- rw:读写
-
-w
:指定容器的工作目录 -
-p 80:80
:端口映射,前面为宿主机的端口,后面为容器服务进程端口,实现方式为iptables -
-e
:给容器声明环境变量,在容器内部可以通过export查看 -
--device
:增加主机的一个设备到容器,也就是让容器拥有访问这个设备的权限 -
--shm-size
:指定shm的大小,默认为64M–shm-size=200m
-
--dns 114.114.114.114
:手动指定容器内部的DNS -
--add-host www.a.com:1.1.1.1
:手动往/etc/hosts 文件中注入主机名到 IP 地址的映射 -
docker.io/nginx:latest
:为镜像名:TAG标签,如果不写TAG,默认为latest;也可以用镜像ID来代替
docker build
通过Dockerfile来制作镜像
解析命令链接地址:Dockerfile解析
docker build --pull -f /opt/Dockerfile -t 镜像名:Tag /opt
--pull #确保 Docker 在构建镜像之前拉取你的 Dockerfile 中 FROM 语句中提到的镜像的更新
-f #指定Dockerfile文件,不指定默认为当前路径的Dockerfile
-t #指定新生成的镜像名:Tag
/opt #代表构建镜像的上下文,通常使用点(.)表示在当前路径
镜像发布
命令 | 说明 |
---|---|
docker login -u 用户名 -p密码 镜像仓库地址 | 登录镜像仓库 |
docker tag 镜像名:Tag 镜像仓库地址/镜像名:Tag | 给镜像打Tag |
docker push 镜像仓库地址/镜像名:Tag | 推送镜像到远程镜像仓库 |
[root@aliyun-alan ~]# docker login -u al6nlee
[root@aliyun-alan ~]# docker commit -m="msg info" -a="al6nlee" 906f8011784e mysql_v57_0530:1.0
[root@aliyun-alan ~]# docker tag mysql_v57_0530:1.0 al6nlee/mysql_v57_0530:1.0
[root@aliyun-alan ~]# docker push al6nlee/mysql_v57_0530:1.0
[root@aliyun-alan ~]# docker logout
镜像常用命令
命令 | 说明 |
---|---|
docker history 镜像ID | 查看镜像分层信息 |
docker history --format { {.CreatedBy}} --no-trunc=true 镜像ID | 查看镜像完整构建命令 |
docker inspect 镜像ID | 查看镜像详细信息 |
docker search 镜像名 | 搜索镜像,默认从官方镜像仓库搜索 |
docker save 镜像名:Tag > nginx.tar | 把镜像打成一个tar包 |
docker load -i nginx.tar | 导入nginx镜像 |
docker system df | 查看docker磁盘使用情况 |
docker system prune -f | 删除停止的容器、至少一个容器未使用的所有网络、悬浮镜像、悬浮构建缓存;-f表示强制删除 |
docker system prune -a | 在上述基础上再删除没有任何容器使用的镜像、构建缓存 |
容器相关
docker ps
查看运行中的容器
docker ps -a 查看所有容器
docker logs
查看容器日志
docker logs [选项] 容器名
-f #动态查看
-t #显示时间戳
--tail 20 #显示最近的20行
--since 30m #显示最近30分钟的日志
--since=“2018-02-08” # 指定时间之后日志
--since=“2018-02-08T13:23:37” --until “2018-02-09T12:23:37” # 查看某段时间日志
容器常用命令
docker ps #显示正在运行的容器
docker ps -a #显示所有容器
docker ps -l #显示最近的一个容器
docker ps -n2 #显示最近创建的两个容器
docker ps -q #显示容器ID
docker start 容器名 #启动容器
docker restart 容器名 #重启容器
docker stop 容器ID或容器名 #停止容器
docker kill 容器名 #强制停止容器
docker rm 容器ID或容器名 #删除容器
docker rm -f 容器名 #强制删除容器,可以删除运行中的容器
docker rm -v 容器名 #删除容器的同时也删除与之关联的volume
docker top 容器名 #查看容器里面的进程
docker stats 容器名 #查看容器资源使用情况(不指定容器,会查看所有容器的使用情况)
docker inspect 容器名 #查看容器元数据
docker exec -it 容器ID bash #进入容器,并分配一个新的终端
exit #退出容器
docker cp /etc/hosts 容器名:/opt #拷贝宿主机的hosts文件到容器的/opt目录下
docker cp 容器名:/opt/a.sh /tmp #拷贝容器的a.sh文件到宿主机的/tmp路径下
docker pause 容器名 #暂停容器
docker unpause 容器名 #取消暂停容器
docker commit -m="提交信息" -a="作者" 容器id 新镜像名:[Tag] #基于容器生成一个镜像(不推荐)
docker inspect -f '{
{.HostConfig.LogConfig}}' 容器名 #查看容器日志策略
docker inspect --format "{
{ .State.Pid }}" 容器名 #查看容器在宿主机对应的PID
数据卷相关
数据卷默认路径:/var/lib/docker/volumes/
集群服务中卷映射有两种模式,分别是volume和bind,默认是volume。
命令 | 说明 |
---|---|
docker volume ls | 查看本地数据卷 |
docker inspect 卷名 | 查看数据卷信息 |
volumes模式
如果指定的卷在主机上已经存在,则使用指定的卷,如果在特定主机上执行容器启动任务时这些卷不存在,则会根据服务上的卷规范自动创建卷
# 将容器中/usr/share/nginx/html目录映射到nginx_data
docker service create --replicas 1 --mount type=volume,src=nginx_data,dst=/usr/share/nginx/html --name nginx-test2 nginx
默认的情况下,自动创建的卷使用的驱动是 local,可以在–mount参数中使用更具体的配置进行设置,格式如下:
docker service create --mounttype=volume,src=<VOLUME-NAME>,dst=<CONTAINER-PATH>,volume-driver=<DRIVER>,volume-opt=<KEY0>=<VALUE0>,volume-opt=<KEY1>=<VALUE1> --name myservice <IMAGE>
bind模式
将宿主机某个目录映射到docker容器,目录必须已经存在,如果节点初始化任务容器时路径不存在,则会报错,服务任务执行失败。很适合用于部署网站,可以宿主机的这个目录作为git版本目录,每次update代码的时候,容器就会更新。
docker service create --replicas 1 --mount type=bind,src=/home/yyl/nginx,dst=/usr/share/nginx/html --name nginx-test3 nginx
nfs模式
# 先在各个节点创建nfs数据卷
docker volume create --driver local --opt type=nfs --opt o=addr=192.168.137.202,rw --opt device=:/home/yyl/shared nfs-share
# 之后,再管理节点上使用以下命令创建服务
docker service create --replicas 2 --mount type=volume,src=nfs-share,dst=/usr/share/nginx/html --name nginx-nfs nginx
网络相关
#创建docker01网络,-o指定通过ifconfig命令查看到的名字
docker network create docker01 --subnet=10.10.10.0/24 -o com.docker.network.bridge.name=docker01
docker network ls #列出docker网络
docker network inspect 网桥名字或ID #查看网桥的详细信息
docker network rm 网桥名 #移除网络
docker network connect 网桥名 容器名 #将容器与网桥关联,表现形式为一个容器多个IP
compose相关
命令 | 说明 |
---|---|
docker-compose build | 建立或者重建服务 |
docker-compose config | 验证和查看Compose文件 |
docker-compose create | 创建服务 |
docker-compose down | 停止和删除容器,网络,镜像和卷 |
docker-compose events | 从容器接收实时事件 |
docker-compose exec | 登录正在运行的容器执行命令 |
docker-compose images | 镜像列表 |
docker-compose kill | 杀掉容器 |
docker-compose logs | 查看容器的输出 |
docker-compose pause | 暂停容器 |
docker-compose port | 为端口绑定打印公共端口 |
docker-compose ps | 容器列表 |
docker-compose pull | 下载服务镜像 |
docker-compose push | 上传服务镜像 |
docker-compose restart | 重启容器 |
docker-compose rm | 删除停止的容器 |
docker-compose run | 运行一次性的命令 |
docker-compose scale | 设置服务的容器数量 |
docker-compose start | 启动服务 |
docker-compose stop | 停止服务 |
docker-compose top | 显示运行过程 |
docker-compose unpause | 暂停服务 |
docker-compose up | 创建并启动容器 |
swarm相关
docker swarm
命令 | 说明 |
---|---|
docker swarm init | 初始化集群 |
docker swarm join-token (worker|manager) | 管理工作、管理节点的 token |
docker swarm leave | 离开集群 |
docker swarm join | 加入集群 |
docker swarm init [OPTION]
初始化集群
- –advertise-addr: 多网卡的情况下,指定需要使用的ip,或者指定一个节点上没有的 IP,比如一个负载均衡的 IP
- –listen-addr: 指定监听的 ip 与端口,通常与
--advertise-addr
相匹配,如果--advertise-addr
设置了一个远程 IP 地址(如负载均衡的IP地址),该属性也是需要设置的 - –autolock: 指定集群启用自动锁定功能
- –availability: 节点的有效性(“active”|“pause”|“drain”)
- Active:集群中该Node可以被指派Task
- Pause:集群中该Node不可以被指派新的Task,但是其他已经存在的Task保持运行
- Drain:集群中该Node不可以被指派新的Task,Swarm Scheduler停掉已经存在的Task,并将它们调度到可用的Node上
docker swarm join-token [OPTION] (worker | manager)
管理集群令牌,可查看、刷新令牌,只能在管理节点执行,参数如下:
- -q:只输出令牌
- –rotate: 刷新令牌
docker swarm join [OPTIONS] HOST:PORT
将一个节点机器加入集群,需要在节点机器上执行,常用参数如下:
- –advertise-addr: 多网卡的情况下,指定需要使用的ip
- –listen-addr: 指定监听的 ip 与端口,通常与 --advertise-addr 相匹配
- –availability: 节点的有效性(“active”|“pause”|“drain”)
- –token:集群令牌
docker swarm update [OPTIONS]
更新集群状态,只能在管理节点执行,常用参数如下:
- –autolock:修改管理节点的自动锁定功能配置,可用值有: true、false
- –cert-expiry:验证节点之间的通讯令牌的间隔,默认时2160小时,可用单位: ns|us|ms|s|m|h
- –dispatcher-heartbeat:心跳包间隔时长,默认5秒,可用单位:ns|us|ms|s|m|h
- –task-history-limit:任务历史记录保留限制
docker swarm leave [OPTIONS]
脱离集群,在需要退出的节点执行,如果只有一个管理节点的情况下,管理节点退出集群,集群解散。参数如下:
-
-f: 强制退出集群
一个节点退出集群之后,docker node ls命令还可以看到该节点信息,只是处于down状态。
docker swarm unlock-key [OPTIONS]
管理解锁码,可查看、刷新解锁码
- -q:只输出解锁码
- –rotate:刷新解锁码
docker swarm unlock
解锁一个管理节点
docker node
命令 | 说明 |
---|---|
docker node ls | 查看集群中所有节点,只能在manager节点上操作 |
docker node rm | 删除某个节点(-f 强制删除) |
docker node inspect self|NODE | 查看节点详情 |
docker node demote NODE | 节点降级,由管理节点降级为工作节点 |
docker node promote NODE | 节点升级,由工作节点升级为管理节点 |
docker node update | 更改一个节点的配置,只能在管理节点操作 |
docker node ps | 查看节点中的 Task 任务 |
docker service
命令 | 说明 |
---|---|
docker service create | 部署服务 |
docker service inspect | 查看服务详情 |
docker service logs | 产看某个服务日志 |
docker service ls | 查看所有服务详情 |
docker service rm | 删除某个服务(-f 强制删除) |
docker service scale | 设置某个服务个数 |
docker service update | 更新某个服务 |
docker service ps ID | 查看某个服务的详情 |
docker service create [OPTIONS] IMAGE [COMMAND] [ARG…]
按照指定的参数创建服务,后面可以命令和参数,类似docker run,常用的选项有:
-
–name: 指定服务名称
-
–label:设置服务标签
-
-mode:设置服务模式,可用值:global、replicated,默认值是replicated
- global:全局模式,会在每一个可用节点都创建一个服务副本,而且每个节点有且只有一个
- replicated:复制模式,可以指定复制个数,默认是1,swarm调度器会调度可以节点创建指定数量的副本,一个节点可以同时有多个副本
-
–replicas: 任务副本个数,与–mode=replicated,搭配使用
-
–replicas-max-per-node:每个节点可以运行的任务的最大个数,默认是0,表示没有限制
-
–env:设置运行时环境变量
-
–workdir:设置工作目录
-
–user:设置用户
-
–publish: 端口映射,默认使用 ingress 网络模式,使用swarm集群的负载均衡,会在每一个节点上都开放配置的端口,并且自动转发到容器内部。如果不想使用swarm集群负载均衡,想要自己更加灵活地做路由策略,可以设置为mode=host模式,这种模式下swarm集群只会在任务运行的节点上开放配置的端口,你需要知道任务副本运行在哪个几点上,一般情况下–publish mode=host 模式和 --mode=global一起使用。
示例:docker service create --publish 8000:80 nginx docker service create --publish published=8080,target=80 nginx docker service create --mode global --publish mode=host,target=80,published=8080 --name=nginx nginx:latest
-
–mount:配置卷挂载,常用的两种挂载方式是volume和bind,区别在于一个会自动创建卷,一个必须节点上已经存在相应的卷
docker service create --mount src=<VOLUME-NAME>,dst=<CONTAINER-PATH> --name myservice <IMAGE> docker service create --mount type=bind,src=<HOST-PATH>,dst=<CONTAINER-PATH> --name myservice <IMAGE>
-
–network:配置网络,不同的swarm服务可以共有一个覆盖网络,这样不同的服务之间就可以通讯,网络有可以做很多的配置,最基本的用法如下:
docker network create --driveroverlay my-network docker service create \ --replicas3 \ --networkmy-network \ --namemy-web \ nginx
-
–config: 设置配置文件
-
–secret:设置机密信息,与–config类似
-
–reserve-memory:配置服务启动需要最少的内存,如果没有满足要求的节点,则服务将保持挂起状态,直到合适的节点可以运行其任务为止
-
–reserve-cpu:配置服务启动需要最少的cpu个数,如果没有满足要求的节点,则服务将保持挂起状态,直到合适的节点可以运行其任务为止
-
–constraint:设置任务节点约束,只有满足约束的节点会被调度运行任务副本,需要配置集群内的节点的标签使用,用于调度任务在合适的节点上运行,避免调度到一些不符合服务运行条件的节点,导致服务运行失败
-
–placement-pref:配置放置首选项,与–constraint类似,可以结合–constraint、–reserve-cpu、–reserve-memory一起使用,筛选合适的节点。要注意的是,不要做出无法达到的条件筛选。
-
–update-delay:更新策略,两次更新任务之间间隔多长,默认0s,可用时间单位:ns、us、ms、s、m、h
-
–update-failure-action:更新失败时的操作,默认为pause,可用值:pause、continue、rollback
-
–update-max-failure-ratio:可以容忍的更新失败比例,默认时0,可用值为0到1的浮点数,表示更新失败的百分比,1为100%
-
–update-monitor:更新之后需要监控容器正常运行多长时间,默认是5s
-
–update-parallelism:每次同时根据的任务副本个数,默认是1
-
–rollback-delay:回滚策略,两次回滚任务之间间隔多长,默认0s,可用时间单位:ns、us、ms、s、m、h
-
–rollback-failure-action:回滚失败时的操作,默认为pause,可用值:pause、continue、rollback
-
–rollback-max-failure-ratio:可以容忍的回滚失败比例,默认时0,可用值为0到1的浮点数,表示更新失败的百分比,1为100%
-
–rollback-monitor:回滚之后需要监控容器正常运行多长时间,默认是5s
-
–rollback-parallelism:每次同时根据的任务副本个数,默认是1
-
–restart-condition:配置重启策略,可用值有:“none”、“on-failure”、“any”,默认是any
-
–restart-delay:尝试重启的时间间隔
-
–restart-max-attempts:尝试重启的最大次数
-
–with-registry-auth:服务创建的时候,各个工作节点同步管理节点的私有仓库登录凭证,从而各个节点可用拉取私有仓库镜像
docker service ls [OPTIONS]
列出所有服务,命令常用选项如下:
- -f:对服务进行过滤
- -q:只展示id
docker service ps [OPTIONS] SERVICE [SERVICE…]
列出一个或多个服务的详细任务信息,可以查看服务对于的任务副本的状态,具体在哪个节点等,命令常用选项如下:
- -f:对任务进行过滤
- -q:只展示id
docker service inspect [OPTIONS] SERVICE [SERVICE…]
查看一个或多个服务的元信息,能够了解到服务内部的很多配置和一些原理,常用选项如下:
- –pretty:对服务信息进行格式化
docker service logs [OPTIONS] SERVICE|TASK
通过服务或任务的名称、id,输出服务或者任务的日志信息,对于排查错误有用,常用选项如下:
- –since:给定一个时间戳,输出从给定时间之后的日志
- -n:输出最后多少行
- -t:显示每行日志的时间
docker service scale SERVICE=REPLICAS [SERVICE=REPLICAS…]
设置服务的副本个数,选项如下:
- -d:后台运行命令
docker service update [OPTIONS] SERVICE
按照新的配置更新服务,update命令的大部分参数配置会关闭原有的副本容器,重新启动新的容器。常用选项如下:
一些是和create命令中的参数一样的,如–rollback-delay、–update-delay等,这一部分就没有列出来了。
- –image:更新服务使用的镜像,一般用于对服务进行迭代升级,指定新的镜像标签重启容器
- –replicas:更新服务的副本数量,用于扩容缩容,和docker service scale功能相同
- –replicas-max-per-node:单个节点最多可部署多少个副本
- –env-add:添加或更新环境变量
- –env-rm:移除环境变量
- –workdir:更改工作目录
- –user:更改用户
- –publish-add:添加或更新端口映射,与create命令中的格式一样
- –publish-rm:通过目标端口删除已发布的端口
- –mount-add:新增或更新卷映射配置
- –mount-rm:移除卷映射配置
- –network-add:添加网络
- –network-rm:移除网络
- –config-add:添加或者更新服务配置文件
- –config-rm:删除服务配置文件
- –secret-add:添加或更新机密数据
- –secret-rm:删除机密数据
- –reserve-memory:配置服务启动需要最少的内存
- –reserve-cpu:配置服务启动需要最少的cpu个数
- –constraint-add:添加或更新约束
- –constraint-rm:删除约束
- –placement-pref-add:添加或更新首选项
- –placement-pref-rm:删除首选项
- –rollback:回滚到之前的版本,不能和update除回滚配置之外的其他命令一起使用,相当于docker service rollback命令
- –force:强制更新,update命令有一些参数不会导致启动新的容器,通过这个参数可以强制启动新的容器
docker service rollback [OPTIONS] SERVICE
按照回滚配置回滚一个服务,选项如下:
- -d:后台运行命令
docker service rm SERVICE [SERVICE…]
移除一个或者多个服务,需要注意的是,该命令不会二次确认,使用的时候请小心
docker stack
Docker Stack 编排依赖于声明文件,其实也就是Docker Compse文件,不过Stack对于Compose文件有一个要求,文件的规范版本(顶层关键字
version
)必须是“3.0”或以上
,而且一些Docker Compse文件中的关键字不受支,如:build、cgroup_parent、container_name、devices、tmpfs、external_links、links、network_mode、restart、security_opt、userns_mode由于 build 关键字在 Stack 中不受支持,不能在编排的过程中构建镜像,docker stack部署用到的镜像必须是已经构建发布好并且发布到 docker 仓库的,在服务编排过程各个节点中直接从 docker 仓库拉取。
命令 | 说明 |
---|---|
docker stack deploy | 部署新的堆栈或更新现有堆栈 -c:指定compose文件路径 –with-registry-auth:服务创建的时候,各个工作节点同步管理节点的私有仓库登录凭证,从而各个节点可用拉取私有仓库镜像 |
docker stack ls [OPTIONS] | 列出现有堆栈 |
docker stack ps [OPTIONS] STACK | 列出堆栈中的任务 |
docker stack rm [OPTIONS] STACK [STACK…] | 删除堆栈 |
docker stack services [OPTIONS] STACK | 列出堆栈中的服务 |
docker stack down | 移除某个堆栈(不会删除数据) |