Docker Compose 的命令选项可分为全局选项(对所有 Compose 命令生效)和常用命令及对应选项(针对具体操作,如 up down 等)。以下结合实际使用场景,详解核心选项:
全局选项需放在 docker-compose 之后、具体命令(如 up)之前,用于基础配置。
| 选项 | 全称 | 含义 | 示例 |
-f |
--file |
指定 Compose 配置文件路径(默认找当前目录的 docker-compose.yml 或 docker-compose.yaml) |
用 app.yml 启动:
docker-compose -f app.yml up |
-p |
--project-name |
指定项目名(默认用配置文件所在目录名,影响容器 / 网络 / 卷的命名前缀) |
项目名设为 test:
docker-compose -p test up |
--profile |
无 |
指定启动的配置文件 “Profiles”(用于区分不同环境的配置,如开发 / 生产) |
启动 dev 环境配置:
docker-compose --profile dev up |
--verbose |
无 |
显示详细日志(调试时用,会输出更多底层操作信息) |
docker-compose --verbose up |
最常用的启动命令,核心选项如下:
| 选项 | 含义 | 场景 |
-d |
后台运行容器(“detached” 模式) |
启动后不占用终端,适合生产环境 |
--build |
启动前重新构建服务的镜像(即使镜像已存在) |
代码或 Dockerfile 修改后,确保用新镜像启动 |
--force-recreate |
强制重新创建容器(即使配置没变化) |
需重置容器状态时使用(如清理缓存) |
--no-start |
只创建容器,不启动(后续可手动 start) |
需先检查容器配置,再手动启动 |
--scale <服务名>=<数量> |
扩展服务实例数量(需服务未指定 container_name) |
临时扩展 web 服务到 3 个实例:
docker-compose up -d --scale web=3 |
用于彻底清理项目相关资源,选项如下:
| 选项 | 含义 | 场景 |
--volumes |
同时删除 Compose 中定义的 “命名卷”(数据卷) |
需彻底清理数据(如测试环境重置) |
--rmi <类型> |
删除相关镜像(all:所有服务镜像;local:仅本地构建的镜像) |
清理无用镜像,释放空间 |
--remove-orphans |
删除未在 Compose 文件中定义的 “孤儿” 容器(如旧版本服务) |
避免残留未配置的旧容器 |
单独构建镜像,不启动容器,选项如下:
| 选项 | 含义 | 场景 |
--no-cache |
构建时不使用缓存(强制重新下载依赖、执行所有步骤) |
依赖更新后,确保用最新资源构建 |
--pull |
构建前拉取基础镜像的最新版本(如 FROM ubuntu 拉最新版) |
确保基础镜像为最新,避免漏洞 |
<服务名> |
指定只构建某个服务的镜像(默认构建所有服务) |
只修改了 web 服务,仅构建它:
docker-compose build web |
查看服务日志,常用选项:
| 选项 | 含义 | 场景 |
-f |
实时跟踪日志(类似 tail -f) |
实时监控服务运行输出 |
--tail <行数> |
只显示最后 N 行日志 |
快速查看最近日志:
docker-compose logs --tail 100 web |
-t |
日志中显示时间戳 |
定位日志产生的具体时间 |
重启运行中的容器,选项:
| 选项 | 含义 | 场景 |
-t <秒数> |
停止容器前的等待时间(默认 10 秒) |
给服务预留退出时间(如保存数据) |
显示项目中容器的运行状态,选项:
| 选项 | 含义 | 场景 |
-a |
显示所有容器(包括已停止的) |
查看是否有异常停止的容器 |
--services |
只显示服务名称(不显示容器细节) |
快速确认项目包含的服务 |
核心高频选项集中在 up(启动)、down(清理)、build(构建)这三个命令,全局选项中 -f(指定文件)和 -p(指定项目名)是多环境管理的常用工具。使用时可通过 docker-compose <命令> --help 查看完整选项(如 docker-compose up --help)。