Linux 命令速查
系统管理 man docker-compose

docker-compose

定义和运行多容器 Docker 应用程序。

返回

补充说明

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: