docker-compose2.0文档
docker-compose2.0以下文档


安装(v1.29.2)

国内镜像安装 v1 最后一个版本是 1.29.2 ,如果安装其他版本,直接替换版本号进行安装

1
curl -L https://get.daocloud.io/docker/compose/releases/download/1.29.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

二进制文件执行权限

1
chmod +x /usr/local/bin/docker-compose

查看版本号 验证是否成功安装

1
docker-compose version

卸载

1
sudo rm /usr/local/bin/docker-compose

快速上手

前台运行 up每次都会加载docker-compose.yml

1
docker-compose up

后台运行

1
docker-compose up -d

后台运行-不使用默认文件名

1
docker-compose -f server.yml up -d 

停止服务

1
docker-compose start

停止服务后启动服务

1
docker-compose start

重启服务

1
docker-compose restart

指令(v1.29.2)

使用 Docker 定义和运行多容器应用程序。

用法

1
2
docker-compose [-f <arg>...] [--profile <name>...] [options] [--] [COMMAND] [ARGS...]
docker-compose -h|--help

选项

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
-f, --file FILE             指定备用`Compose file` (默认: docker-compose.yml)
-p, --project-name NAME 指定备用项目名称 (默认:目录名)
--profile NAME 指定要启用的配置文件
-c, --context NAME 指定上下文名称
--verbose 显示更多输出
--log-level LEVEL 设置日志级别(DEBUG、INFO、WARNING、ERROR、CRITICAL)
--ansi (never|always|auto) 控制何时打印 ANSI 控制字符
--no-ansi 不打印 ANSI 控制字符(已弃用)
-v, --version 打印版本并退出
-H, --host HOST 要连接的守护进程套接字

--tls 使用 TLS; 由 --tlsverify 暗示
--tlscacert CA_PATH 仅由该 CA 签署的信任证书
--tlscert CLIENT_CERT_PATH TLS 证书文件的路径
--tlskey TLS_KEY_PATH TLS 密钥文件的路径
--tlsverify 使用 TLS 并验证远程
--skip-hostname-check 不要根据客户端证书中指定的名称检查守护进程的主机名
--project-directory PATH 指定备用工作目录(默认值:`Compose file`的路径 )
--compatibility 如果设置,`Compose`将尝试将`v3`文件中的键转换为它们的非`Swarm`等效项 (已弃用)
--env-file PATH 指定备用环境文件

命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
build              构建或重建服务
config 验证并查看 Compose 文件
create 创建服务
down 停止并移除资源
events 从容器接收实时事件
exec 在正在运行的容器中执行命令
help 获取命令帮助
images 列出镜像
kill 杀死容器
logs 查看容器的输出
pause 暂停服务
port 打印端口绑定的公共端口
ps 列出容器
pull 拉取服务镜像
push 推送服务镜像
restart 重启服务
rm 移除停止的容器
run 运行一次性命令
scale 设置服务的容器数量
start 启动服务
stop 停止服务
top 显示正在运行的进程
unpause 取消暂停服务
up 创建和启动容器
version 显示版本信息并退出

build 构建或重建服务

构建或重建服务。
服务构建一次,然后标记为“project_service”,例如 composetest_db。 如果你改变了一个服务的 Dockerfile 或者它的构建目录的内容,你可以运行 docker-compose build 来重建它。

1
2
3
4
5
6
7
8
9
10
11
12
用法: build [options] [--build-arg key=val...] [--] [SERVICE...]
选项:
--build-arg key=val 为服务设置构建时变量。
--compress 使用 gzip 压缩构建上下文。
--force-rm 始终移除中间容器。
-m, --memory MEM 为构建容器设置内存限制。
--no-cache 构建镜像时不要使用缓存。
--no-rm 成功构建后不要移除中间容器。
--parallel 并行构建镜像。
--progress string 设置进度输出类型(auto、plain、tty)。
--pull 始终尝试拉取更新版本的映像。
-q, --quiet 不要将任何内容打印到 STDOUT

config 验证和查看 Compose file

验证并查看 Compose 文件。

1
2
3
4
5
6
7
8
9
10
用法: config [options]
选项:
--resolve-image-digests 将镜像标签固定到摘要。
--no-interpolate 不要插入环境变量。
-q, --quiet 仅验证配置,不打印任何内容。
--profiles 打印配置文件名称,每行一个。
--services 打印服务名称,每行一个。
--volumes 打印卷名,每行一个。
--hash="*" 打印服务配置哈希,每行一个。
为指定服务列表设置“service1,service2”或使用通配符显示所有服务。

create 创建服务

为服务创建容器。
此命令已弃用。 将 up 命令与 --no-start 一起使用。

1
2
3
4
5
6
用法: create [options] [SERVICE...]
选项:
--force-recreate 即使容器的配置和映像没有更改,也要重新创建容器。 与 --no-recreate 不兼容。
--no-recreate 如果容器已经存在,请不要重新创建它们。 与 --force-recreate 不兼容。
--no-build 不要构建镜像,即使它丢失了。
--build 在创建容器之前构建镜像。

down 停止并移除资源

停止容器并删除容器、网络、卷和映像
up创建。

默认情况下,唯一删除的内容是:

  • Compose 文件中定义的服务容器
  • 在 Compose 文件的“networks”部分定义的网络
  • 默认网络(如果使用)

定义为“外部”的网络和卷永远不会被删除。

1
2
3
4
5
6
7
8
9
用法: down [options]
选项:
--rmi type 删除镜像。 类型必须是以下之一:
'all':删除任何服务使用的所有镜像。
'local':仅删除没有
由“镜像”字段设置的自定义标签。
-v, --volumes 删除在 Compose 文件的“volumes”部分声明的命名卷和附加到容器的匿名卷。
--remove-orphans 移除未在 Compose 文件中定义的服务的容器
-t, --timeout TIMEOUT 以秒为单位指定关闭超时。 (默认值:10)

events 从容器接收实时事件

从容器接收实时事件。

1
2
3
用法: events [options] [--] [SERVICE...]
选项:
--json 将事件输出为 json 对象流

exec 在正在运行的容器中执行命令

在正在运行的容器中执行命令

1
2
3
4
5
6
7
8
9
用法: exec [options] [-e KEY=VAL...] [--] SERVICE COMMAND [ARGS...]
选项:
-d, --detach 分离模式:在后台运行命令。
--privileged 为进程提供扩展权限。
-u, --user USER 以该用户身份运行命令。
-T 禁用伪 tty 分配。 默认情况下,`docker-compose exec` 分配一个 TTY。
--index=index 容器的索引,如果有多个服务实例[默认值:1]
-e, --env KEY=VAL 设置环境变量(可多次使用,API < 1.25不支持)
-w, --workdir DIR 此命令的 workdir 目录的路径。

help 获取命令帮助

获取有关命令的帮助。

1
Usage: help [COMMAND]

images 列出镜像

列出创建的容器使用的图像。

1
2
3
Usage: images [options] [--] [SERVICE...]
Options:
-q, --quiet 仅显示 ID

kill 杀死容器

强制停止服务容器。

1
2
3
4
Usage: kill [options] [--] [SERVICE...]

Options:
-s SIGNAL SIGNAL 发送到容器。 默认信号是 SIGKILL。

logs 查看容器的输出

查看容器的输出。

1
2
3
4
5
6
7
Usage: logs [options] [--] [SERVICE...]
Options:
--no-color 产生单色输出。
-f, --follow 关注日志输出。
-t, --timestamps 显示时间戳。
--tail="all" 从每个容器的日志末尾开始显示的行数。
--no-log-prefix 不要在日志中打印前缀。

pause 暂停服务

暂停服务。

1
Usage: pause [SERVICE...]

port 打印端口绑定的公共端口

打印端口绑定的公共端口。

1
2
3
4
Usage: port [options] [--] SERVICE PRIVATE_PORT
Options:
--protocol=proto tcp or udp [default: tcp]
--index=index 如果有多个服务实例,则容器的索引 [默认值:1]

ps 列出容器

列出容器。

1
2
3
4
5
6
Usage: ps [options] [--] [SERVICE...]
Options:
-q, --quiet 仅显示 ID
--services 显示服务
--filter KEY=VAL 按属性过滤服务
-a, --all 显示所有停止的容器(包括那些由 run 命令创建的)

pull 拉取服务镜像

为 Compose 文件中定义的服务拉取镜像,但不启动容器。

1
2
3
4
5
6
7
Usage: pull [options] [--] [SERVICE...]
Options:
--ignore-pull-failures 拉出它可以拉出的内容并忽略拉取失败的图像。
--parallel 已弃用,并行拉取多个图像(默认启用)。
--no-parallel 禁用并行拉动。
-q, --quiet 拉取不打印进度信息
--include-deps 同时拉取声明为依赖项的服务

push 推送服务镜像

推送服务的图像。

1
2
3
Usage: push [options] [--] [SERVICE...]
Options:
--ignore-push-failures 推送它可以推送的内容并忽略推送失败的图像。

restart 重启服务

重新启动正在运行的容器。

1
2
3
Usage: restart [options] [--] [SERVICE...]
Options:
-t, --timeout TIMEOUT 以秒为单位指定关闭超时。(默认值:10)

rm 移除停止的容器

删除停止的服务容器。

默认情况下,不会删除附加到容器的匿名卷。 你可以用 -v 覆盖它。 要列出所有卷,请使用 docker volume ls

任何不在卷中的数据都将丢失。

1
2
3
4
5
6
Usage: rm [options] [--] [SERVICE...]
Options:
-f, --force 不要求确认删除
-s, --stop 如果需要,在删除之前停止容器
-v 删除任何附加到容器的匿名卷
-a, --all 已弃用 - 无效。

run 运行一次性命令

在服务上运行一次性命令。

例如:docker-compose 运行 web python manage.py shell

默认情况下,链接服务将被启动,除非它们已经运行。 如果您不想启动链接服务,请使用docker-compose run --no-deps SERVICE COMMAND [ARGS...]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Usage:
run [options] [-v VOLUME...] [-p PORT...] [-e KEY=VAL...] [-l KEY=VALUE...] [--]
SERVICE [COMMAND] [ARGS...]
Options:
-d, --detach 分离模式:在后台运行容器,打印新的容器名称。
--name NAME 为容器分配一个名称
--entrypoint CMD 覆盖图像的入口点。
-e KEY=VAL 设置环境变量(可以多次使用)
-l, --label KEY=VAL 添加或覆盖一个标签(可以多次使用)
-u, --user="" 以指定的用户名或 uid 运行
--no-deps 不启动链接服务。
--rm 运行后删除容器。在分离模式下被忽略。
-p, --publish=[] 将容器的端口发布到主机
--service-ports 在启用服务端口并映射到主机的情况下运行命令。
--use-aliases 在容器连接的网络中使用服务的网络别名。
-v, --volume=[] 绑定挂载卷(默认 [])
-T 禁用伪 tty 分配。 默认情况下,`docker-compose run` 分配一个 TTY。
-w, --workdir="" 容器内的工作目录

scale 设置服务的容器数量

设置为服务运行的容器数量。

数字以 service=num 的形式指定为参数。
例如:docker-compose scale web=2 worker=3

此命令已弃用。 使用带有 --scale 标志的 up 命令。

1
2
3
Usage: scale [options] [SERVICE=NUM...]
Options:
-t, --timeout TIMEOUT 以秒为单位指定关闭超时。(默认值:10)

start 启动服务

启动现有容器。

1
Usage: start [SERVICE...]

stop 停止服务

停止运行容器而不删除它们。
它们可以使用 docker-compose start 再次启动。

1
2
3
Usage: stop [options] [--] [SERVICE...]
Options:
-t, --timeout TIMEOUT 以秒为单位指定关闭超时。(默认值:10)

top 显示正在运行的进程

显示正在运行的进程

1
Usage: top [SERVICE...]

unpause 取消暂停服务

取消暂停服务。

1
Usage: unpause [SERVICE...]

up 创建和启动容器

为服务构建、(重新)创建、启动和附加到容器。

除非它们已经在运行,否则此命令还会启动任何链接的服务。

docker-compose up 命令聚合每个容器的输出。 什么时候命令退出,所有容器都停止。 运行docker-compose up -d在后台启动容器并让它们运行。

如果服务存在现有容器,并且在创建容器后更改了服务的配置或映像,则 docker-compose up 会通过停止并重新创建容器(保留已安装的卷)来获取更改。 要防止 Compose 获取更改,请使用 --no-recreate 标志。

如果要强制 Compose 停止并重新创建所有容器,请使用--force-recreate 标志。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Usage: up [options] [--scale SERVICE=NUM...] [--] [SERVICE...]
Options:
-d, --detach 分离模式:在后台运行容器,打印新的容器名称。 与 --abort-on-container-exit 不兼容。
--no-color 产生单色输出。
--quiet-pull 拉取不打印进度信息
--no-deps 不要启动链接服务。
--force-recreate 即使容器的配置和映像没有更改,也要重新创建容器。
--always-recreate-deps 重新创建依赖容器。 与 --no-recreate 不兼容。
--no-recreate 如果容器已经存在,请不要重新创建它们。 与 --force-recreate 和 -V 不兼容。
--no-build 不要构建镜像,即使它丢失了。
--no-start 创建服务后不启动服务。
--build 在启动容器之前构建镜像。
--abort-on-container-exit 停止所有容器,如果有任何容器停了下来。与 -d 不兼容。
--attach-dependencies 附加到依赖容器。
-t, --timeout TIMEOUT 在容器中使用此超时时间(以秒为单位)连接或容器时关闭已经运行。 (默认值:10)
-V, --renew-anon-volumes 重新创建匿名卷而不是检索来自先前容器的数据。
--remove-orphans 删除未定义服务的容器在撰写文件中。
--exit-code-from SERVICE 返回所选服务的退出代码容器。暗示 --abort-on-container-exit。
--scale SERVICE=NUM 将 SERVICE 扩展到 NUM 个实例。覆盖 Compose 文件中的 `scale` 设置(如果存在)。
--no-log-prefix 不要在日志中打印前缀。

version 显示版本信息并退出

显示版本信息并退出。

1
2
3
Usage: version [--short]
Options:
--short 仅显示 Compose 的版本号。