使用 Docker Compose 编排本地容器

发布于:2025-06-15 ⋅ 阅读:(16) ⋅ 点赞:(0)

使用 Docker Compose 编排本地容器

Docker Compose 是一个用于定义和运行多容器 Docker 应用的工具。通过 docker-compose.yml 文件,你可以轻松地将多个本地容器组合成一个完整的应用。

以下是使用 Docker Compose 编排本地容器的详细步骤:

  1. 创建 docker-compose.yml 文件
    在项目根目录下创建 docker-compose.yml 文件,定义所有服务及其配置:
version: '3'
services:
  web:
    build: .  # 使用当前目录的 Dockerfile 构建镜像
    ports:
      - "8080:80"  # 映射主机端口 8080 到容器端口 80
    depends_on:
      - db  # 依赖于数据库服务
    environment:
      - DB_CONNECTION_STRING=server=db;database=myapp;user=sa;password=YourStrongPassword
  db:
    image: mcr.microsoft.com/mssql/server:2019-latest  # 使用官方 SQL Server 镜像
    environment:
      - SA_PASSWORD=YourStrongPassword
      - ACCEPT_EULA=Y
    volumes:
      - mssql-data:/var/opt/mssql  # 挂载数据卷保存数据库文件

volumes:
  mssql-data:  # 定义命名卷
  1. 构建和启动容器
    在项目目录下执行以下命令构建并启动所有服务:
docker-compose up -d
  • -d 参数表示在后台运行容器
  • 首次运行会自动构建或拉取所需镜像
  1. 常用命令
# 查看容器状态
docker-compose ps

# 查看服务日志
docker-compose logs -f web

# 停止并删除容器
docker-compose down

# 仅重启特定服务
docker-compose restart web

# 构建并重新创建服务容器
docker-compose up -d --build

高级配置技巧

  1. 使用 .env 文件
    在项目根目录创建 .env 文件,存储环境变量:
DB_PASSWORD=YourStrongPassword
APP_PORT=8080

在 docker-compose.yml 中引用这些变量:

version: '3'
services:
  web:
    ports:
      - "${APP_PORT}:80"
  db:
    environment:
      - SA_PASSWORD=${DB_PASSWORD}
  1. 多环境配置
    创建 docker-compose.prod.yml 用于生产环境:
version: '3'
services:
  web:
    image: myregistry/web:${VERSION}  # 使用预构建镜像而非本地构建
    ports:
      - "80:80"
  db:
    volumes:
      - /data/mssql:/var/opt/mssql  # 使用主机路径挂载

使用 -f 参数指定配置文件:

docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d
  1. 网络配置
    默认情况下,Docker Compose 会创建一个专用网络,所有服务都可以通过服务名互相访问(例如 web 服务可以通过 db 访问数据库)。
services:
  web:
    networks:
      - my-network
  db:
    networks:
      - my-network

networks:
  my-network:

通过这些配置,你可以高效地使用 Docker Compose 管理本地开发环境中的多个容器。