视频加载失败

Docker Compose 入门与命令速查

1516 字
8 分钟
Docker Compose 入门与命令速查

Docker Compose 解决什么问题#

Docker Compose 解决的核心问题可以概括为一句话:

把”手动敲一长串 docker run 来跑一组容器”变成”用一个声明式 YAML 文件描述,一条命令管理整套环境”。

Docker Compose 不解决什么#

  • 不构建镜像:它调 docker build,构建还是 Dockerfile 的事。compose 里写 build: 只是调用。
  • 不做大规模集群编排:跨多主机、自动扩缩容、滚动更新,那是 K8s / Swarm 的领域。Compose 定位是单机(或开发/测试环境)的多容器编排。
  • 不替代 docker run 的所有场景:临时跑一条命令,docker run --rm 更直接。

compose 是**docker run 的升级版,具有”声明式 + 编排 + 生命周期管理”**的特点。

概述#

Docker Compose 让用户能够以声明式方式定义和管理多容器应用。它的核心价值在于:用一个 YAML 文件取代一连串手动的 docker run 命令,使得复杂应用的启动、停止和重建变得一键可达。

对于开发团队而言,Compose 解决了三个关键问题:环境一致性(“在我机器上能跑”的问题)、服务依赖管理(确保数据库在应用之前启动)、以及开发-测试-生产的配置差异管理(通过 compose.override.yaml 实现多环境适配)。

在 Linux 上,默认建议通过 Docker 官方软件仓库安装 Compose CLI 插件,这样可以随系统包管理器更新:

Terminal window
sudo apt-get update
sudo apt-get install docker-compose-plugin

测试安装

Terminal window
docker compose version

命令说明#

项目启动与停止:

  • docker compose up:第一次启动项目,拉取镜像、创建容器
  • docker compose start:启动已停止的容器(项目已存在)
  • docker compose stop:优雅地停止容器(不删除容器)
  • docker compose down:完全清理,删除容器和网络(开发时常用)

调试与查看:

  • docker compose ps:查看项目中的容器状态
  • docker compose logs:查看容器日志(排查问题的第一步)
  • docker compose exec:进入正在运行的容器执行命令

构建与更新:

  • docker compose build:重新构建镜像(修改 Dockerfile 后)
  • docker compose pull:更新所有镜像到最新版本

配置验证:

  • docker compose config:验证 docker-compose.yml 格式是否正确

命令速查#

命令格式作用常用选项
builddocker compose build [options] [SERVICE...]构建(重新构建)项目中的服务容器--force-rm 删除临时容器 --no-cache 不使用缓存 --pull 始终拉取更新镜像
configdocker compose config验证 Compose 文件格式,正确则显示配置,错误则显示原因—
downdocker compose down停止 up 启动的容器,并移除网络—
execdocker compose exec [SERVICE] [COMMAND]进入指定的容器执行命令—
helpdocker compose help [COMMAND]获得某个命令的帮助—
imagesdocker compose images列出 Compose 文件中包含的镜像—
killdocker compose kill [options] [SERVICE...]发送 SIGKILL 强制停止服务容器-s 指定发送的信号,如 -s SIGINT
logsdocker compose logs [options] [SERVICE...]查看服务容器输出(默认不同服务用不同颜色区分)--no-color 关闭颜色
pausedocker compose pause [SERVICE...]暂停一个服务容器—
portdocker compose port [options] SERVICE PRIVATE_PORT打印某容器端口映射的公共端口--protocol=proto 指定 tcp/udp --index=index 指定容器序号(默认 1)
psdocker compose ps [options] [SERVICE...]列出项目中所有容器-q 只打印容器 ID
pulldocker compose pull [options] [SERVICE...]拉取服务依赖的镜像--ignore-pull-failures 忽略拉取错误
pushdocker compose push推送服务依赖的镜像到仓库—
restartdocker compose restart [options] [SERVICE...]重启项目中的服务-t, --timeout TIMEOUT 停止超时(默认 10 秒)
rmdocker compose rm [options] [SERVICE...]删除所有(停止状态的)服务容器-f, --force 强制删除(含运行中) -v 删除挂载的数据卷
rundocker compose run [options] [-p PORT...] [-e KEY=VAL...] SERVICE [COMMAND] [ARGS...]在指定服务上执行一个命令-d 后台运行 --name NAME 指定容器名 --entrypoint CMD 覆盖启动指令 -e KEY=VAL 设置环境变量 -u, --user="" 指定用户/uid --no-deps 不自动启动关联服务 --rm 运行后自动删除容器 -p, --publish=[] 映射端口 --service-ports 映射服务端口 -T 不分配伪 tty
scaledocker compose up -d --scale SERVICE=NUM扩缩容服务实例(现推荐用 up --scale)-d 后台启动 --scale SERVICE=NUM 指定实例数(可重复)
startdocker compose start [SERVICE...]启动已存在的服务容器—
stopdocker compose stop [options] [SERVICE...]停止运行中的容器,但不删除-t, --timeout TIMEOUT 停止超时(默认 10 秒)
topdocker compose top查看各服务容器内运行的进程—
unpausedocker compose unpause [SERVICE...]恢复处于暂停状态的服务—
updocker compose up [options] [SERVICE...]构建镜像、(重新)创建服务、启动服务并关联容器(最常用)-d 后台运行 --no-color 不使用颜色 --no-deps 不启动链接容器 --force-recreate 强制重新创建 --no-recreate 已存在则不重建 --no-build 不自动构建缺失镜像 -t, --timeout TIMEOUT 停止超时(默认 10 秒)
versiondocker compose version打印版本信息—
watchdocker compose watch [options] [SERVICE...]开发模式,监视源码变化并自动刷新服务(需 develop 配置段)--no-up 不自动启动服务 --quiet 静默模式

按使用场景分类#

场景推荐命令
首次启动项目docker compose up
后台启动docker compose up -d
启动已停止的容器docker compose start
优雅停止(不删除)docker compose stop
完全清理(删容器+网络)docker compose down
查看容器状态docker compose ps
查看日志(排查第一步)docker compose logs
进入运行中的容器docker compose exec
修改 Dockerfile 后重建docker compose build
更新所有镜像docker compose pull
验证配置文件格式docker compose config
扩缩容docker compose up -d --scale web=3 --scale db=2

混淆点对比#

命令对区别
up vs startup 会构建/创建/启动(全流程);start 只启动已存在的容器
stop vs downstop 只停容器;down 停容器并删除容器和网络
kill vs stopkill 发 SIGKILL 强制杀;stop 优雅停止(默认 10 秒超时)
restart vs uprestart 只重启容器;up 会按 Compose 文件重新创建容器以匹配最新配置
rm vs downrm 删除停止状态的容器;down 一步到位停+删+清网络

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

Docker Compose 入门与命令速查
https://astroluxi.top/posts/docker-compose-guide/
作者
Lux
发布于
2026-09-19
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
Lux
技术学习者 · 机器人爱好者
公告
欢迎来到我的博客!有所记录,有所分享。
分类
标签
最新动态
站点统计
文章
21
分类
5
标签
35
总字数
105,578
运行时长
0 天
最后活动
0 天前
站点信息
构建平台
Cloudflare Pages
博客版本
Firefly v6.16.5
文章许可
CC BY-NC-SA 4.0