Docker Compose 命令说明
hanpy

docker compose 常用的命令整理。

docker compose 命令基本格式

https://docs.docker.com/compose/reference/

1
2
3
4
5
6
7
docker compose [-f=<arg>...] [options] [COMMAND] [ARGS...]

options:
-f, --file FILE 指定使用的 Compose 模板文件,默认为 docker-compose.yml,可以多次指定。
-p, --project-name NAME 指定项目名称,默认将使用所在目录名称作为项目名。
--verbose 输出更多调试信息。
-v, --version 打印版本并退出。

up

https://docs.docker.com/engine/reference/commandline/compose_up/

up 命令可以自动完成包括构建镜像,(重新)创建服务,启动服务,并关联服务相关容器的一系列操作。链接的服务都将会被自动启动(除非已经处于运行状态)。大部分时候都可以直接通过该命令来启动一个项目。

1
2
3
4
5
6
7
8
9
10
docker compose up [OPTIONS] [SERVICE...]

OPTIONS
-d 在后台运行服务容器。
--no-color 不使用颜色来区分不同的服务的控制台输出。
--no-deps 不启动服务所链接的容器。
--force-recreate 强制重新创建容器,不能与 --no-recreate 同时使用。
--no-recreate 如果容器已经存在了,则不重新创建,不能与 --force-recreate 同时使用。
--no-build 不自动构建缺失的服务镜像。
-t, --timeout TIMEOUT 停止容器时候的超时(默认为 10 秒)。

down

https://docs.docker.com/engine/reference/commandline/compose_down/

down 命令用来停止并移除容器、网络

1
2
3
4
5
6
$ docker compose down [OPTIONS]

OPTIONS
--remove-orphans 删除未在 Compose 文件中定义的服务的容器。
--rmi 把镜像也删除
--volumes , -v 删除附加卷和匿名卷

build

https://docs.docker.com/engine/reference/commandline/compose_build/

build 命令用来构建(重新构建)项目中的服务容器。

如果修改了服务的 Dockerfile 文件或者是一些其他构建的选项,就需要运行 docker compose build 来重新构建

1
2
3
4
5
6
$ docker compose build [OPTIONS] [SERVICE...]

OPTIONS
--force-rm 删除构建过程中的临时容器。
--no-cache 构建镜像过程中不使用 cache(这将加长构建过程)。
--pull 始终尝试通过 pull 来获取更新版本的镜像。

start

https://docs.docker.com/engine/reference/commandline/compose_start/

start 命令可以启动已经存在的服务容器。

1
$ docker compose start [SERVICE...]

stop

https://docs.docker.com/engine/reference/commandline/compose_stop/

stop 命令可以停止已经处于运行状态的容器,但不删除它。

1
2
3
4
$ docker compose stop [OPTIONS] [SERVICE...]

OPTIONS
--timeout , -t

restart

https://docs.docker.com/engine/reference/commandline/compose_restart/

restart 命令可以重启项目中的服务。

1
2
3
4
5
$ docker compose restart [OPTIONS] [SERVICE...]

OPTIONS
--no-deps 不要重新启动依赖服务。
--timeout , -t 指定重启前停止容器的超时(默认为 10 秒)。

pause

https://docs.docker.com/engine/reference/commandline/compose_pause/

pause 命令可以暂停一个服务容器

1
$ docker compose pause [SERVICE...]

unpause

https://docs.docker.com/engine/reference/commandline/compose_unpause/

unpause 命令可以恢复处于暂停状态中的服务。

1
$ docker compose unpause [SERVICE...]

rm

https://docs.docker.com/engine/reference/commandline/compose_rm/

rm 命令可以删除所有(停止状态的)服务容器。推荐先执行 docker-compose stop 命令来停止容器。

1
2
3
4
5
6
$ docker compose rm [OPTIONS] [SERVICE...]

OPTIONS
--force , -f 强制直接删除,包括非停止状态的容器。一般尽量不要使用该选项。
--volumes , -v 删除容器所挂载的数据卷。
--stop , -s 如果需要,在移除之前停止容器

ps

https://docs.docker.com/engine/reference/commandline/compose_ps/

ps 命令可以列出项目中目前的所有容器。

1
2
3
4
5
6
7
8
9
$ docker compose ps [OPTIONS] [SERVICE...]

OPTIONS
--all , -a 列出所有容器
--filter
--format 格式化输出,table | json
--quiet , -q 只显示ID
--services 显示服务容器
--status 按照状态过滤容器

top

https://docs.docker.com/engine/reference/commandline/compose_top/

top 命令可以查看各个服务容器内运行的进程。

1
$ docker compose top [SERVICES...]

run

https://docs.docker.com/engine/reference/commandline/compose_run/

run 命令可以在在指定服务上执行一个命令。

1
2
3
4
5
6
7
8
9
10
11
12
13
$ docker compose run [OPTIONS] SERVICE [COMMAND] [ARGS...]

OPTIONS
-d 后台运行容器。
--name NAME 为容器指定一个名字。
--entrypoint CMD 覆盖默认的容器启动指令。
-e KEY=VAL 设置环境变量值,可多次使用选项来设置多个环境变量。
-u, --user="" 指定运行容器的用户名或者 uid。
--no-deps 不自动启动关联的服务容器。
--rm 运行命令后自动删除容器,d 模式下将忽略。
-p, --publish=[] 映射容器端口到本地主机。
--service-ports 配置服务端口并映射到本地主机。
-T 不分配伪 tty,意味着依赖 tty 的指令将无法运行。

exec

https://docs.docker.com/engine/reference/commandline/compose_exec/

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

1
2
3
4
5
6
7
$ docker compose exec [OPTIONS] SERVICE COMMAND [ARGS...]

OPTIONS
--detach , -d 在后台运行命令
--env , -e 设置环境变量
--user , -u 设置运行命令的用户
--workdir , -w 设置工作目录

kill

https://docs.docker.com/engine/reference/commandline/compose_kill/

kill 命令可以强制停止服务容器,也可以用来给容器发送信号

1
2
3
4
5
$ docker compose kill [OPTIONS] [SERVICE...]

OPTIONS
--remove-orphans 删除未在 Compose 文件中定义的服务的容器。
--signal , -s 发送信号,默认是 SIGKILL

logs

https://docs.docker.com/engine/reference/commandline/compose_logs/

logs 命令可以查看服务容器的输出。

1
2
3
4
5
6
$ docker compose logs [OPTIONS] [SERVICE...]

OPTIONS
--since
--tail , -n 显示最后的多少行
--timestamps , -t

port

https://docs.docker.com/engine/reference/commandline/compose_port/

port 命令打印端口绑定的公共端口。

1
2
3
4
docker compose port [OPTIONS] SERVICE PRIVATE_PORT

OPTIONS
--protocol 指定端口协议,默认 tcp

config

https://docs.docker.com/engine/reference/commandline/compose_config/

config 命令用来验证 Compose 文件格式是否正确,若正确则显示配置,若格式错误显示错误原因。

1
2
3
4
5
6
7
8
$ docker compose config [OPTIONS] [SERVICE...]

OPTIONS
--format 格式化方式,可以选 yaml 或者 json
--images 打印出使用到的所有的镜像
--output , -o 把结果保存在文件中
--services 打印出所有的服务
--volumes 打印出所有挂载的目录

images

https://docs.docker.com/engine/reference/commandline/compose_images/

images 命令可以列出创建的容器使用的镜像。

1
2
3
4
5
$ docker compose images [OPTIONS] [SERVICE...]

OPTIONS
--format 显示格式,table | json
--quiet , -q 仅显示ID