Appearance
Docker Compose 常用命令
Note:基于 Docker Compose v2。
1. docker compose up
启动和运行服务。
常用选项:
-d, --detach:后台运行容器;--build:在启动前强制重新构建服务镜像;--force-recreate:强制重新创建容器,即使配置未更改;--remove-orphans:删除未在docker-compose.yml文件中定义的孤立容器;--no-deps:启动服务时不启动其依赖的服务;
示例:
Bash
# 后台运行服务并强制重新构建镜像
docker compose up -d --build2. docker compose down
停止并删除容器、网络和默认的卷。
常用选项:
-v, --volumes:删除与容器相关的所有卷;--remove-orphans:删除孤立的容器;
示例:
Bash
# 停止并清除所有卷和孤立容器
docker compose down -v --remove-orphans3. docker compose ps
列出当前项目中所有服务的容器及其状态。
常用选项:
--all:显示所有容器(包括已退出的);--services:只列出服务名,不显示容器;-q, --quiet:只显示容器 ID;
示例:
Bash
# 列出当前所有容器及状态
docker compose ps
# 仅显示服务名
docker compose ps --services4. docker compose logs
查看容器日志。
常用选项:
-f, --follow:实时显示日志输出(类似tail -f);--tail <lines>:仅显示最近的指定行数的日志;--timestamps:在日志中显示时间戳;--no-color:禁用日志的彩色输出;
示例:
Bash
# 查看所有服务的实时日志
docker compose logs -f
# 查看指定服务的最近 50 行日志
docker compose logs --tail 50 <service_name>5. docker compose exec
在正在运行的容器中执行命令。
常用选项:
-u, --user <user>:指定用户执行命令;-T:不分配伪终端(用于脚本);--index <index>:在具有多个实例的服务中,指定容器实例;
示例:
Bash
# 进入服务容器的交互式 Shell
docker compose exec <service_name> bash
# 在服务容器中以 root 用户执行命令
docker compose exec -u root <service_name> whoami
# 不分配伪终端,执行命令并输出结果
docker compose exec -T <service_name> cat /etc/hosts6. docker compose run
在服务上运行一个一次性的命令容器(与 exec 的区别是 run 会启动新容器)。
常用选项:
--rm:运行后自动删除容器;-T:不分配伪终端;--entrypoint <command>:覆盖镜像的默认入口点;
示例:
Bash
# 基于服务运行临时容器执行命令,运行结束后删除
docker compose run --rm <service_name> echo "Hello World"
# 运行时覆盖入口点
docker compose run --entrypoint "/bin/bash" <service_name>7. docker compose build
构建或重新构建服务的镜像。
常用选项:
--no-cache:构建时不使用缓存;--pull:始终尝试拉取最新的基础镜像;--progress:设置输出模式(auto、plain或tty);
示例:
Bash
# 重新构建镜像,不使用缓存
docker compose build --no-cache
# 拉取最新的基础镜像并构建
docker compose build --pull8. docker compose stop
停止运行中的容器,但不删除它们。
示例:
Bash
# 停止所有服务
docker compose stop
# 停止指定服务
docker compose stop <service_name>9. docker compose restart
重启服务容器。
常用选项:
-t, --timeout <seconds>:在指定时间内等待容器停止后重启;
示例:
Bash
# 重启所有服务
docker compose restart
# 重启指定服务,等待 5 秒后重启
docker compose restart -t 5 <service_name>10. docker compose config
验证和查看 docker-compose.yml 文件的配置。
常用选项:
--services:仅显示服务名;--volumes:仅显示卷信息;--profiles:显示启用的配置文件;
示例:
Bash
# 检查配置文件语法
docker compose config
# 仅显示服务名
docker compose config --services11. docker compose version
显示 Docker Compose 的版本。
示例:
Bash
# 查看版本
docker compose version12. docker compose top
显示所有服务中运行容器的进程信息。
示例:
Bash
# 查看运行的进程信息
docker compose top13. docker compose events
显示容器的实时事件流。
示例:
Bash
# 监听实时事件
docker compose events14. docker compose scale
扩展(或缩减)指定服务的运行实例数量。
用法:
Bash
docker compose scale <service>=<number>示例:
Bash
# 扩展 web 服务到 3 个实例
docker compose scale web=315. docker compose rm
删除停止的容器。
常用选项:
-f, --force:强制删除容器;-s, --stop:首先停止正在运行的容器;
示例:
Bash
# 删除所有停止的容器
docker compose rm -f
# 停止并删除指定容器
docker compose rm -s <service_name>