1. Docker Compose 文件基础解析
第一次接触 Docker Compose 时,我被它的简洁配置方式惊艳到了。这个用 YAML 编写的文件,能轻松定义和管理多容器应用。就像交响乐团的指挥家,一个 docker-compose.yml 文件就能协调所有服务容器和谐运作。
Docker Compose 文件的核心价值在于将复杂的容器编排逻辑抽象成声明式配置。相比手动输入一长串 docker run 命令,它提供了更结构化、可版本控制的服务定义方式。在实际工作中,我常用它来搭建开发环境、测试套件和中小型生产部署。
提示:YAML 对缩进敏感,建议使用 2 个空格作为缩进标准,避免混用制表符和空格
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 核心配置项深度剖析
2.1 服务定义的艺术
services 部分是 compose 文件的灵魂所在。每个服务定义就像乐谱中的一个声部,需要精心设计其运行参数。以典型的 web 应用为例:
yaml复制services:
webapp:
image: nginx:1.21-alpine
ports:
- "8080:80"
volumes:
- ./html:/usr/share/nginx/html
environment:
- NGINX_ENV=production
depends_on:
- db
这里有几个关键经验:
- 镜像标签尽量明确(如 1.21-alpine),避免使用 latest 导致版本漂移
- 端口映射建议始终使用字符串格式(如 "8080:80"),避免 YAML 将数字解析为整数
- 挂载卷时,相对路径(./html)会基于 compose 文件所在目录解析
2.2 网络配置实战技巧
默认情况下,compose 会创建专属桥接网络,服务间可通过服务名互访。但有些场景需要自定义网络:
yaml复制networks:
app_net:
driver: bridge
ipam:
config:
- subnet: 172.28.0.0/16
我曾遇到容器间延迟高的问题,通过指定 subnet 避免了 Docker 自动
