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 项目的整个生命周期,从开发调试到生产部署都能游刃有余。

相关推荐
网络小白不怕黑2 小时前
Docker Compose与私有仓库
运维·docker·容器
爬也要爬着前进3 小时前
k8s部署wordpress
android·容器·kubernetes
路边草随风3 小时前
构建能访问k8s集群的容器
云原生·容器·kubernetes
飞Link4 小时前
Linux下的Docker安装教程
linux·运维·服务器·docker·容器
Java陈序员4 小时前
一键部署!一款开源自托管的照片画廊神器!
vue.js·docker
Empty_7774 小时前
K8S-Pod驱逐
云原生·容器·kubernetes
云计算小黄同学4 小时前
【最详细】Kubernetes探针介绍、应用与最佳实践
运维·云原生·容器·kubernetes
一周困⁸天.4 小时前
K8S-特殊容器
云原生·容器·kubernetes
飞Link4 小时前
Docker基础知识
运维·docker·容器