插件窝 干货文章 docker使用yaml

docker使用yaml

Docker Compose YAML 容器 423    来源:    2025-04-04

Docker 使用 YAML 文件指南

YAML 是 Docker 生态系统中常用的配置文件格式,特别是在 Docker Compose 中。以下是关于如何使用 YAML 文件配置 Docker 服务的详细指南。

基本 YAML 结构

Docker Compose 使用 YAML 文件(通常命名为 docker-compose.yml)来定义和运行多容器应用程序。

version: '3.8'  # 指定 Compose 文件格式版本

services:       # 定义服务的容器
  web:
    image: nginx:latest
    ports:
      - "80:80"
    volumes:
      - ./html:/usr/share/nginx/html

  db:
    image: postgres:13
    environment:
      POSTGRES_PASSWORD: example

常用配置项

服务定义

services:
  webapp:
    build: .  # 使用当前目录的 Dockerfile 构建
    image: my-webapp:1.0  # 指定镜像名称和标签
    container_name: my-webapp-container  # 自定义容器名称

端口映射

ports:
  - "8080:80"         # 主机端口:容器端口
  - "8443:443"        # 多个端口映射
  - "5000"            # 仅暴露容器端口,主机随机端口

环境变量

environment:
  - NODE_ENV=production
  - DB_HOST=db
  - DB_PORT=5432

# 或使用键值对形式
environment:
  NODE_ENV: production
  DB_HOST: db
  DB_PORT: 5432

卷挂载

volumes:
  - /var/lib/mysql                # 匿名卷
  - ./data:/var/lib/mysql         # 主机路径:容器路径
  - db-data:/var/lib/mysql        # 命名卷

网络配置

networks:
  app-network:
    driver: bridge

services:
  web:
    networks:
      - app-network

高级配置

依赖和健康检查

services:
  web:
    depends_on:
      db:
        condition: service_healthy
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost"]
      interval: 30s
      timeout: 10s
      retries: 3

资源限制

deploy:
  resources:
    limits:
      cpus: '0.50'
      memory: 512M
    reservations:
      cpus: '0.25'
      memory: 256M

多环境配置

可以使用多个 YAML 文件组合配置:

docker-compose -f docker-compose.yml -f docker-compose.prod.yml up

最佳实践

  1. 版本控制:始终指定 version 字段以保持兼容性
  2. 环境变量:敏感信息使用环境变量或 secrets
  3. 命名规范:为服务和容器使用清晰的命名
  4. 注释:为复杂配置添加注释
  5. 验证:使用 docker-compose config 验证 YAML 文件

常用命令

# 启动服务
docker-compose up -d

# 停止服务
docker-compose down

# 构建服务
docker-compose build

# 查看运行状态
docker-compose ps

# 查看日志
docker-compose logs -f

YAML 文件为 Docker 提供了强大而灵活的配置方式,使得容器化应用的部署和管理变得更加简单和一致。