YAML 是 Docker 生态系统中常用的配置文件格式,特别是在 Docker Compose 中。以下是关于如何使用 YAML 文件配置 Docker 服务的详细指南。
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
version
字段以保持兼容性docker-compose config
验证 YAML 文件# 启动服务
docker-compose up -d
# 停止服务
docker-compose down
# 构建服务
docker-compose build
# 查看运行状态
docker-compose ps
# 查看日志
docker-compose logs -f
YAML 文件为 Docker 提供了强大而灵活的配置方式,使得容器化应用的部署和管理变得更加简单和一致。