跳到主要内容
lanzai.co
返回

Docker Compose 安装与常用指令

Docker Compose 用来定义和运行多容器应用。现代 Docker 已内置 Compose v2 插件。

安装

新版 Docker(docker-ce 安装包已含插件),只需确认:

docker compose version

如果系统没有,单独安装:

sudo apt update
sudo apt install -y docker-compose-plugin

注意是 docker compose(带空格),旧版独立的 docker-compose 命令已被取代。

基本语法

compose.yaml(或 docker-compose.yml)的骨架:

services:
  web:
    image: nginx:alpine
    ports:
      - "8080:80"
    volumes:
      - ./html:/usr/share/nginx/html
  db:
    image: postgres:16
    environment:
      POSTGRES_PASSWORD: secret
    volumes:
      - pgdata:/var/lib/postgresql/data

volumes:
  pgdata:

常用字段:image、build、ports、volumes、environment、depends_on、restart、networks。

常用指令

docker compose up -d             # 构建并后台启动
docker compose up -d --build     # 改过 Dockerfile 后重新构建
docker compose down              # 停止并移除容器与网络
docker compose down -v           # 连同卷一起删除(数据会丢)
docker compose ps                # 查看服务状态
docker compose ls                # 查看当前目录的 compose 项目
docker compose logs -f           # 跟随全部服务日志
docker compose logs -f web       # 只看某服务
docker compose exec web sh       # 进入某服务容器
docker compose restart web       # 重启某服务
docker compose pull              # 更新镜像
docker compose config            # 校验并打印解析后的配置

开发常用组合

docker compose up -d && docker compose logs -f   # 启动并盯日志
docker compose down && docker compose up -d      # 干净重启
docker compose exec db psql -U postgres          # 进入数据库

环境变量

.env 文件自动加载,配合 $VAR 使用:

services:
  db:
    image: postgres:16
    environment:
      POSTGRES_PASSWORD: ${DB_PASSWORD}
cp .env.example .env

升级迁移提示


分享这篇文章:

上一篇
Docker 安装指南(Ubuntu/Debian)
下一篇
Docker 常用指令速查