一 Docker Compose命令格式
1 Usage:
2 docker-compose [-f <arg>...] [options] [COMMAND] [ARGS...]
3 docker-compose -h|--help
二 Docker Compose命令参数及解释
1 Usage:
2 docker-compose [-f <arg>...] [options] [COMMAND] [ARGS...]
3 docker-compose -h|--help
4
5 Options:
6 -f, --file FILE #指定一个用于替换默认的yml配置文件,默认为docker-compose.yml
7 -p, --project-name NAME #指定一个用于替换默认的项目名称,默认为当前目录名
8 --verbose #显示更多输出
9 --log-level LEVEL #设置log级别,包括(DEBUG, INFO, WARNING, ERROR, CRITICAL)
10 --no-ansi #不显示ANSI控制字符
11 -v, --version #现实Docker Compose版本
12 -H, --host HOST #守护进程链接至某主机
13
14 --tls #使用TLS证书
15 --tlscacert CA_PATH #指定的个CA证书路径
16 --tlscert CLIENT_CERT_PATH #指定TLS certificate文件路径
17 --tlskey TLS_KEY_PATH #指定TLS key文件路径
18 --tlsverify #使用TLS而且验证
19 --skip-hostname-check #不要根据客户端证书中指定的名称检查守护进程的主机名
20 --project-directory PATH #指定一个用于替换默认的项目目录,默认为Compose file所在目录
21 --compatibility If set, Compose will attempt to convert deploy
22 keys in v3 files to their non-Swarm equivalent
23
24 Commands:
25 build #构建或重建服务
26 bundle #从Compose文件生成分布式应用程序包(DAB)
27 config #验证并查看Compose文件。
28 create #为服务建立容器,该命令被弃用,可以使用“up”命令。
29 down #中止并移除containers, networks, images以及volumes
30 events #展现项目中每一个容器的容器事件
31 exec #至关于docker exec,使用此子命令,您能够在服务中运行任意命令
32 help #查看帮助
33 images #列出镜像
34 kill #强制中止容器
35 logs #查看容器log
36 pause #暂停服务
37 port #显示某个容器端口所映射的公共端口
38 ps #列出容器
39 pull #pull服务镜像
40 push #push服务镜像
41 restart #重启服务
42 rm #删除全部(中止状态)的服务容器
43 run #在指定服务上指定一个命令
44 scale #设置服务的容器数量
45 start #启动服务
46 stop #中止服务
47 top #显示正在运行的进程
48 unpause #恢复处于暂停状态状态中的服务
49 up #建立和启动容器
50 version #查看Docker-Compose的版本信息
提示:
-f参数为可选,也可以使用-f提供多个配置文件,当使用多个文件时,Compose会将它们合并为一个配置。Compose按照提供文件的顺序构建配置。后续文件覆盖并添加到其前任文件中。
若是未在命令行上提供此标志,Compose将遍历工做目录及其父目录,以查找docker-compose.yml和docker-compose.override.yml文件。至少须要提供该docker-compose.yml文件。若是两个文件都存在于同一目录级别,则Compose会将这两个文件合并为一个配置。
docker-compose.override.yml文件中的配置能应用在构建中的值是除docker-compose.yml文件中的值以外。
也可以使用相关环境变量指定Compose文件的路径。
环境变量相关资料参考《附005.Docker Compose环境变量说明》。
三 Docker Compose命令分解详解
3.1 build
格式:
1 Usage: build [options] [--build-arg key=val...] [SERVICE...]
2 Options:
3 --compress #使用gzip压缩构建上下文
4 --force-rm #老是移除中间容器
5 --no-cache #在构建映像时不要使用缓存
6 --pull #老是尝试拉一个新版本的镜像
7 -m, --memory MEM #为构建容器设置内存限制
8 --build-arg key=val #为服务设置构建时变量
构建服务,并打上标记,默认为project_service。例如,composetest_db。若是Compose文件指定镜像名称,则使用该名称标记镜像。
若更改服务的Dockerfile或其构建目录的内容,可运行docker-compose build以重建它。
3.2 bundle
格式:
1 Usage: bundle [options]
2 Options:
3 --push-images #自动为全部服务在“构建”时推送镜像。
4 -o, --output PATH #将bundle文件写入的其余路径,默认为"<project name>.dab"
3.3 config
格式:
1 Usage: config [options]
2 Options:
3 --resolve-image-digests Pin image tags to digests.
4 -q, --quiet #只验证配置,不显示任何东西
5 --services #打印服务名称,每行一个
6 --volumes #打印卷名,每行一个
验证并查看Compose文件。
3.4 create
该命令已被弃用。
3.5 down
格式
1 Usage: down [options]
2 Options:
3 --rmi type #删除镜像,可选type以下:
4 #“all”:删除任何服务使用的全部镜像。
5 #“本地”:只删除不具备自定义tag标记的镜像
6 -v, --volumes #删除在Compose文件挂载的以及附加到容器的匿名卷
7 --remove-orphans #为没有在Compose文件中定义的服务删除容器
8 -t, --timeout TIMEOUT #指定关闭超时,默认为10秒
中止容器并删除由其建立的容器,网络,卷和镜像。
默认状况下,删除的内容为:
- Compose文件中定义的服务的容器
- 在Compose文件中networks部分中定义的网络
- 默认网络(若是使用)
外部定义的网络和卷永远不会被删除。
3.6 events
格式:
1 Usage: events [options] [SERVICE...]
2 Options:
3 --json #使用该--json标志,每行打印一个json对象。
3.7 exec
格式:
1 Usage: exec [options] [-e KEY=VAL...] SERVICE COMMAND [ARGS...]
2 Options:
3 -d, --detach #在后台运行命令
4 --privileged #向进程提供扩展特权
5 -u, --user USER #运行该命令的用户
6 -T #禁用分配tty,默认docker-compose exec会分配一个tty
7 --index=index #若是有多个服务实例,则指定容器的索引,默认为1
8 -e, --env KEY=VAL #设置环境变量,可设置屡次,不支持低于v1.25版本的API
9 -w, --workdir DIR #指定工做目录
3.8 images
格式:
1 Usage: images [options] [SERVICE...]
2 Options:
3 -q, --quiet #仅显示ID
列出镜像
3.9 kill
1 Usage: kill [options] [SERVICE...]
2
3 Options:
4 -s SIGNAL #发送到容器的信号。默认信号是SIGKILL
经过发送SIGKILL信号强制运行容器中止。可选地,能够传递信号,例如:docker-compose kill -s SIGINT
3.10 logs
格式:
1 Usage: logs [options] [SERVICE...]
2 Options:
3 --no-color #生成单色输出
4 -f, --follow #跟踪日志输出
5 -t, --timestamps #显示时间戳
6 --tail="all" #为每一个容器从日志的末尾显示的行数
显示服务的日志输出。
3.11 pause
格式:
1 Usage: pause [SERVICE...]
暂停运行服务的容器。可以使用docker-compose unpause来中止暂定。
3.12 port
格式:
1 Usage: port [options] SERVICE PRIVATE_PORT
2 Options:
3 --protocol=proto #tcp或udp,默认为tcp
4 --index=index #当一个服务拥有多个容器时,可经过该参数登录到该服务下的任何服务
3.13 ps
格式:
1 Usage: ps [options] [SERVICE...]
2 Options:
3 -q #仅列出容器id
列出容器
3.14 pull
格式:
1 Usage: pull [options] [SERVICE...]
2 Options:
3 --ignore-pull-failures #忽略pull失败的镜像,继续pull其余镜像.
4 --parallel #并行拉取多个镜像
5 --no-parallel #关闭并行拉取镜像
6 -q, --quiet #静默拉取,不显示进度信息
7 --include-deps #将服务声明为依赖项
拉取与docker-compose.yml或docker-stack.yml文件中定义的服务关联的镜像,但不会根据这些镜像启动容器。
3.15 push
格式:
1 Usage: push [options] [SERVICE...]
2 Options:
3 --ignore-push-failures ##忽略push失败的镜像,继续push其余镜像.
将服务图像推送到各自的服务registry/repository
3.16 restart
格式:
1 Usage: restart [options] [SERVICE...]
2 Options:
3 -t, --timeout TIMEOUT #指定关闭超时时间,单位为秒。(默认10秒)
从新启动全部已中止和正在运行的服务。
3.17 rm
格式:
1 Usage: rm [options] [SERVICE...]
2 Options:
3 -f, --force #不进行确认即删除
4 -s, --stop #在删除前中止容器
5 -v #删除任何与容器相关的匿名卷
删除已中止的服务容器。
默认状况下,不会删除附加到容器的匿名卷,可以使用-v强制删除全部匿名卷。可以使用ocker volume ls列出全部卷,任何不在卷中的数据都将丢失。
在没有任何选项的状况下,此命令也会运删除由docker-compose up或docker-compose run所建立的一次性容器。
3.18 run
格式:
1 Usage:
2 run [options] [-v VOLUME...] [-p PORT...] [-e KEY=VAL...] [-l KEY=VALUE...]
3 SERVICE [COMMAND] [ARGS...]
4
5 Options:
6 -d, --detach #在后台运行命令
7 --name NAME #为容器指定一个名称
8 --entrypoint CMD #覆盖images中的CMD命令
9 -e KEY=VAL #设置一个环境变量,可以使用屡次
10 -l, --label KEY=VAL #添加或覆盖标签,可以使用屡次
11 -u, --user="" #做为指定的用户名或uid运行
12 --no-deps #不要启动连接服务
13 --rm #在运行后删除容器,在-d后,即后端运行时被忽略
14 -p, --publish=[] #在主机声明一个容器端口
15 --service-ports #启用服务端口并映射主机
16 --use-aliases #容器连接的时候指定别名
17 -v, --volume=[] #绑定挂载一个卷
18 -T #禁用分配tty,默认docker-compose exec会分配一个tty
19 -w, --workdir="" #指定容器工做目录
对服务运行一次性命令。例如,如下命令启动web服务运行bash命令。
docker-compose run web bash
提示:
经过的命令run会覆盖服务配置中定义的命令。例如,若是web启动了bash命令,则会覆盖服务配置文件中docker-compose run web python app.py,及容器行为为docker-compose run web bash。
经过的命令run不会建立服务配置中指定的任何端口。这能够防止端口与已打开的端口发生冲突。若是须要建立服务的端口并将其映射到主机,请指定--service-ports参数,如:
docker-compose run --service-ports web python manage.py shell
或者,可以使用--publish或-p选项指定手动端口映射,相似docker run,如:
docker-compose run --publish 8080:80 -p 2022:22 -p 127.0.0.1:2021:21 web python manage.py shell
3.19 scale
格式:
1 Usage: scale [SERVICE=NUM...]
注意:不推荐使用此命令。建议使用docker-compose up --scale替代。使用docker-compose scale中包含了up命令。
设置要为服务运行的容器数。
数字在表单中指定为参数service=num。例如:
docker-compose scale web=2 worker=3
3.20 start
格式:
1 Usage: start [SERVICE...]
启动服务的现有容器。
3.21 stop
格式:
1 Usage: stop [options] [SERVICE...]
2 Options:
3 -t, --timeout TIMEOUT ##指定关闭超时,默认为10秒
中止运行容器而不删除它们。可以使用docker-compose start再次启动。
3.21 top
格式:
1 Usage: top [SERVICE...]
显示正在运行的进程。
3.22 unpause
格式:
1 Usage: unpause [SERVICE...]
取消暂停服务的暂停容器
2.23 up
格式:
1 Usage: up [options] [--scale SERVICE=NUM...] [SERVICE...]
2 Options:
3 -d, --detach #在后台运行命令,不兼容--abort-on-container-exit
4 --no-color #生成单色输出
5 --quiet-pull #不显示进度信息
6 --no-deps #不要启动连接服务
7 --force-recreate #从新建立容器,即便它们的配置和镜像没有改变
8 --always-recreate-deps #建立容器的依赖,不兼容--no-recreate
9 --no-recreate #若是容器已经存在,就不要从新建立,不兼容--force-recreate 和-V.
10 --no-build #不要创建一个镜像,即便不存在
11 --build #在启动容器以前构建镜像
12 --abort-on-container-exit #存在任何容器中止,则中止建立全部容器,不兼容-d
13 -t, --timeout TIMEOUT #建立容器或启动容器的超时时间,默认10秒
14 -V, --renew-anon-volumes #从新建立匿名卷,而不是使用以前容器已经存在的卷
15 --remove-orphans #为在Compose file中未定义的服务移除容器
16 --exit-code-from SERVICE #返回所指定服务的退出码,不兼容--abort-on-container-exit.
17 --scale SERVICE=NUM #指定容器的规模(数量),会覆盖Compose file中定义的值。
构建,(从新)建立,启动和为服务附加容器。
除非它们已在运行,不然此命令也会启动任何连接服务。
该docker-compose up命令聚合每一个容器的输出(基本上正在运行docker-compose logs -f)。退出命令后,全部容器都将中止。运行docker-compose up -d 在后台启动容器并使其运行。
若是服务的容器已经存在,而且在建立容器后更改了服务的配置或映像,则docker-compose up经过中止并从新建立容器(保留已安装的卷)来获取更改。要防止Compose获取更改,请使用该--no-recreate参数。
若是要强制Compose中止并从新建立全部容器,请使用该--force-recreate参数。
若是进程遇到错误,则此命令的退出代码为1。
若是使用SIGINT(ctrl+ C)或中断进程SIGTERM,则中止容器,则退出代码为0。
若是SIGINT或SIGTERM在这段停机阶段再次发送,运行容器被杀害,则退出代码为2。