深入解析:Docker Compose 启动与停止命令完全指南

Docker Compose 是管理多容器应用的核心工具,通过一个简单的配置文件(docker-compose.yml)就能定义和运行整个应用的所有服务。掌握启动和停止命令是日常开发运维的基础技能。

一、核心启动命令

1. 基础启动方式

​前台启动(推荐开发环境使用)​

docker compose up

这种方式会实时输出所有服务的日志到终端,适合调试和查看启动过程。终端关闭时所有容器会自动停止。

​后台启动(推荐生产环境使用)​

docker compose up -d

-d 参数后服务会在后台以守护进程模式运行,不会占用终端。适合生产环境、集成测试等无需实时查看日志的场景。

2. 高级启动选项

​强制重新构建镜像​

docker compose up --build

如果 Dockerfile 有更新,使用此命令会在启动前重新构建镜像。

​强制重新创建容器​

docker compose up --force-recreate

强制删除并重新创建所有容器,即使配置没有变化。

​删除未在配置中的容器​

docker compose up --remove-orphans

清理不在当前 compose 文件中定义的容器。

二、核心停止命令

1. 优雅停止(保留容器和数据)

​停止所有服务​

docker compose stop

停止运行中的容器,但保留容器、网络和数据卷。可以通过 docker compose start 快速恢复服务。

​停止指定服务​

docker compose stop web

仅停止 web 服务,其他服务继续运行。

​设置停止超时时间​

docker compose stop -t 20

设置 20 秒超时时间,超时后强制终止容器。数据库等需要清理时间的服务建议设置更长超时。

2. 彻底清理(删除所有资源)

​停止并删除容器和网络​

docker compose down

停止并删除所有容器、网络,但保留数据卷。

​删除容器+数据卷​

docker compose down -v

同时删除所有命名卷和匿名卷,​​慎用此命令​​,会导致数据丢失。

​删除容器+数据卷+镜像​

docker compose down -v --rmi all

彻底清理所有资源,包括镜像。适合测试环境重置。

三、服务生命周期管理

1. 启动已停止的服务

docker compose start

启动之前通过 stop 停止的容器,不会重新创建容器。

2. 重启服务

docker compose restart

先停止后启动所有服务,相当于 stop + start

​重启指定服务​

docker compose restart web

仅重启 web 服务。

3. 暂停与恢复

docker compose pause
docker compose unpause

暂停服务(容器进程暂停),恢复暂停的服务。

四、状态查看与调试

1. 查看服务状态

docker compose ps

列出所有服务的运行状态、端口映射等信息。

2. 查看日志

docker compose logs

查看所有服务的日志输出。

​实时跟踪日志​

docker compose logs -f

类似 tail -f,持续输出日志。

​查看指定服务日志​

docker compose logs web

仅查看 web 服务的日志。

3. 进入容器执行命令

docker compose exec web bash

进入 web 容器的 bash shell,进行调试操作。

五、最佳实践建议

1. 环境区分

  • ​开发环境​​:使用 docker compose stop 保留容器数据,便于快速恢复
  • ​测试环境​​:每次测试后执行 docker compose down -v 确保环境干净
  • ​生产环境​​:谨慎使用 -v--rmi 参数,避免误删重要数据

2. 资源清理策略

  • 临时维护:使用 stop 保留资源,便于快速恢复
  • 环境重置:使用 down -v 彻底清理测试环境
  • 生产部署:避免在生产环境使用 down -v,除非确定要删除数据

3. 命令组合示例

​开发环境工作流​

# 启动服务并查看日志
docker compose up -d
docker compose logs -f web
# 停止服务(保留数据)
docker compose stop
# 重新构建并启动
docker compose up -d --build

​测试环境清理​

# 停止并删除所有资源
docker compose down -v --rmi all

​生产环境更新​

# 拉取最新镜像并重启
docker compose pull
docker compose up -d

六、注意事项

  1. ​数据卷安全​​:docker compose down -v 会删除所有数据卷,重要数据需提前备份

  2. ​依赖关系​​:如果服务之间存在 depends_on 依赖,停止时会按依赖顺序停止

  3. ​超时设置​​:数据库等需要清理时间的服务,建议设置更长的停止超时时间

  4. ​版本兼容​​:新版本 Docker 使用 docker compose(无横线),旧版本使用 docker-compose

通过掌握这些命令,你可以高效地管理 Docker Compose 项目的整个生命周期,从开发调试到生产部署都能游刃有余。

posted on 2026-01-07 14:39  ljbguanli  阅读(32)  评论(0)    收藏  举报