补充说明
docker-compose 命令 是 Docker Compose 工具的独立二进制入口,用于通过一个 YAML 文件(默认 docker-compose.yml)定义多容器应用的服务、网络和卷,然后只用一条命令即可创建并启动全部服务。
Docker Compose V2 起,推荐使用 docker compose(作为 docker CLI 插件,中间是空格),docker-compose 独立二进制(V1)已停止更新。两者命令用法一致。
语法
docker-compose [选项] 命令 [服务名...]
选项
-f, --file FILE 指定 compose 文件(默认 docker-compose.yml),可多次指定
-p, --project-name NAME 指定项目名称
--profile NAME 启用指定的 profile
--verbose 输出更多日志
-v, --version 显示版本
常用子命令
up 创建并启动所有服务(-d 后台运行)
down 停止并删除容器、网络(-v 连卷一起删)
ps 列出项目中的容器
logs 查看服务日志(-f 跟随输出)
build 构建或重建服务镜像
exec 在运行中的容器里执行命令
run 在一次性容器中运行命令
pull 拉取服务镜像
restart 重启服务
stop 停止服务(不删除容器)
start 启动已停止的服务
config 校验并查看最终的 compose 配置
实例
# 后台启动全部服务
docker-compose up -d
# 只重建并重启某个服务
docker-compose up -d --build web
# 查看某个服务最近 100 行日志并跟随
docker-compose logs -f --tail=100 web
# 在运行中的 web 容器里打开 shell
docker-compose exec web bash
# 停止并清理全部容器、网络
docker-compose down
# 校验 compose 文件语法
docker-compose config -q
compose 文件示例
services:
web:
image: nginx:alpine
ports:
- "8080:80"
volumes:
- ./site:/usr/share/nginx/html:ro
db:
image: postgres:16
environment:
POSTGRES_PASSWORD: example
volumes:
- db-data:/var/lib/postgresql/data
volumes:
db-data: