Compose 入门(docker-compose.yml)
Docker Compose 是用于定义和管理多容器 Docker 应用的工具,通过 docker-compose.yml 文件描述服务、网络和卷。
1. Docker Compose 基本概念
- 服务(Service):容器的抽象,可以定义镜像、命令、端口、卷等
- 网络(Network):服务间通信网络
- 卷(Volume):持久化存储
- 环境变量(Environment Variables):配置服务行为
2. docker-compose.yml 基本结构
yaml
version: "3.9"
services:
web:
image: nginx:latest
ports:
- "8080:80"
volumes:
- ./html:/usr/share/nginx/html:ro
networks:
- mynet
db:
image: mysql:8
environment:
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_DATABASE: mydb
volumes:
- db_data:/var/lib/mysql
networks:
- mynet
networks:
mynet:
volumes:
db_data:3. 常用指令
- 启动服务:
bash
docker-compose up -d- 停止服务:
bash
docker-compose down- 查看服务日志:
bash
docker-compose logs -f- 构建或重建服务:
bash
docker-compose build4. 多容器依赖管理
- Compose 会按照
depends_on定义启动顺序:
yaml
services:
web:
image: myweb
depends_on:
- db5. 环境变量与配置管理
- 使用
.env文件定义环境变量:
txt
MYSQL_ROOT_PASSWORD=rootpassword
MYSQL_DATABASE=mydb- Compose 文件中引用:
yaml
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
MYSQL_DATABASE: ${MYSQL_DATABASE}掌握 Docker Compose 和 docker-compose.yml 配置,可以轻松管理多容器应用,实现服务快速启动、依赖管理和数据持久化。