Docker Compose 入门与命令速查
1516 字
8 分钟
Docker Compose 入门与命令速查
- 1Docker 的安装
- 2Docker 镜像加速下载
- 3Docker 镜像的使用
- 4Dockerfile 指令详解
- 5Docker Compose 入门与命令速查本文
- 6Docker 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 插件,这样可以随系统包管理器更新:
sudo apt-get updatesudo apt-get install docker-compose-plugin测试安装
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 格式是否正确
命令速查
| 命令 | 格式 | 作用 | 常用选项 |
|---|---|---|---|
| build | docker compose build [options] [SERVICE...] | 构建(重新构建)项目中的服务容器 | --force-rm 删除临时容器 --no-cache 不使用缓存 --pull 始终拉取更新镜像 |
| config | docker compose config | 验证 Compose 文件格式,正确则显示配置,错误则显示原因 | — |
| down | docker compose down | 停止 up 启动的容器,并移除网络 | — |
| exec | docker compose exec [SERVICE] [COMMAND] | 进入指定的容器执行命令 | — |
| help | docker compose help [COMMAND] | 获得某个命令的帮助 | — |
| images | docker compose images | 列出 Compose 文件中包含的镜像 | — |
| kill | docker compose kill [options] [SERVICE...] | 发送 SIGKILL 强制停止服务容器 | -s 指定发送的信号,如 -s SIGINT |
| logs | docker compose logs [options] [SERVICE...] | 查看服务容器输出(默认不同服务用不同颜色区分) | --no-color 关闭颜色 |
| pause | docker compose pause [SERVICE...] | 暂停一个服务容器 | — |
| port | docker compose port [options] SERVICE PRIVATE_PORT | 打印某容器端口映射的公共端口 | --protocol=proto 指定 tcp/udp --index=index 指定容器序号(默认 1) |
| ps | docker compose ps [options] [SERVICE...] | 列出项目中所有容器 | -q 只打印容器 ID |
| pull | docker compose pull [options] [SERVICE...] | 拉取服务依赖的镜像 | --ignore-pull-failures 忽略拉取错误 |
| push | docker compose push | 推送服务依赖的镜像到仓库 | — |
| restart | docker compose restart [options] [SERVICE...] | 重启项目中的服务 | -t, --timeout TIMEOUT 停止超时(默认 10 秒) |
| rm | docker compose rm [options] [SERVICE...] | 删除所有(停止状态的)服务容器 | -f, --force 强制删除(含运行中) -v 删除挂载的数据卷 |
| run | docker 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 |
| scale | docker compose up -d --scale SERVICE=NUM | 扩缩容服务实例(现推荐用 up --scale) | -d 后台启动 --scale SERVICE=NUM 指定实例数(可重复) |
| start | docker compose start [SERVICE...] | 启动已存在的服务容器 | — |
| stop | docker compose stop [options] [SERVICE...] | 停止运行中的容器,但不删除 | -t, --timeout TIMEOUT 停止超时(默认 10 秒) |
| top | docker compose top | 查看各服务容器内运行的进程 | — |
| unpause | docker compose unpause [SERVICE...] | 恢复处于暂停状态的服务 | — |
| up | docker compose up [options] [SERVICE...] | 构建镜像、(重新)创建服务、启动服务并关联容器(最常用) | -d 后台运行 --no-color 不使用颜色 --no-deps 不启动链接容器 --force-recreate 强制重新创建 --no-recreate 已存在则不重建 --no-build 不自动构建缺失镜像 -t, --timeout TIMEOUT 停止超时(默认 10 秒) |
| version | docker compose version | 打印版本信息 | — |
| watch | docker 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 start | up 会构建/创建/启动(全流程);start 只启动已存在的容器 |
stop vs down | stop 只停容器;down 停容器并删除容器和网络 |
kill vs stop | kill 发 SIGKILL 强制杀;stop 优雅停止(默认 10 秒超时) |
restart vs up | restart 只重启容器;up 会按 Compose 文件重新创建容器以匹配最新配置 |
rm vs down | rm 删除停止状态的容器;down 一步到位停+删+清网络 |
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!
Docker Compose 入门与命令速查
https://astroluxi.top/posts/docker-compose-guide/相关文章智能推荐
1
Docker Compose 模板文件指令详解
Docker专题Compose 模板文件全部指令按功能分类详解:镜像构建、依赖启动、环境变量、网络端口、数据卷、安全能力、资源限制、profiles 与变量读取。
2
Docker 镜像的使用
Docker专题docker pull 的镜像名称格式、分层下载原理,以及 docker run 常用参数与容器隔离性的直观理解。
3
Docker 镜像加速下载
Docker专题国内从 Docker Hub 拉取镜像困难?配置 registry mirror 镜像加速器,并用 docker info 验证是否生效。
4
Docker 的安装
Docker专题在 Ubuntu 上通过 APT 仓库安装 Docker Engine,配置 docker 用户组,并了解其安全注意事项。
5
Dockerfile 指令详解
Docker专题Dockerfile 常用指令速查表与 14 条最佳实践,涵盖安全加固、缓存优化与 BuildKit 现代特性。
随机文章随机推荐












