Compose 入门(docker-compose.yml)
Docker Compose 是用于定义和管理多容器 Docker 应用的工具,通过 docker-compose.yml 文件描述服务、网络和卷。
1. Docker Compose 基本概念
- 服务(Service):容器的抽象,可以定义镜像、命令、端口、卷等
- 网络(Network):服务间通信网络
- 卷(Volume):持久化存储
- 环境变量(Environment Variables):配置服务行为
2. docker-compose.yml 基本结构
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. 常用指令
- 启动服务:
docker-compose up -d
- 停止服务:
docker-compose down
- 查看服务日志:
docker-compose logs -f
- 构建或重建服务:
docker-compose build
4. 多容器依赖管理
- Compose 会按照
depends_on定义启动顺序:
services:
web:
image: myweb
depends_on:
- db
5. 环境变量与配置管理
- 使用
.env文件定义环境变量:
MYSQL_ROOT_PASSWORD=rootpassword
MYSQL_DATABASE=mydb
- Compose 文件中引用:
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
MYSQL_DATABASE: ${MYSQL_DATABASE}
掌握 Docker Compose 和 docker-compose.yml 配置,可以轻松管理多容器应用,实现服务快速启动、依赖管理和数据持久化。
相关内容
- 构建自定义 Registry 本章节介绍如何搭建和管理 Docker 私有 Registry,包括部署自定义 Registry、配置存储与访问权限、镜像推送与拉取流程,以及安全与备份策略,满...
- 与 Kubernetes 的比较与协作 本章节对比 Docker 与 Kubernetes 的异同点,并讲解两者的协作方式,包括容器管理、编排、服务发现、部署流程和最佳实践,帮助理解容器生态系统中的应...
- Rootless Docker 与安全边界 本章节介绍 Rootless Docker 的使用方法及安全边界管理,包括非 root 容器运行原理、配置步骤、权限限制和网络隔离策略,提升容器安全性并降低宿主...
- 常用命令速查表 本章节提供 Docker 常用命令速查表,包括镜像管理、容器操作、网络配置、卷管理、日志查看及调试命令,帮助开发者快速查找和使用 Docker 命令,提高容器管...
- 参考文档与学习资源 本章节整理 Docker 官方文档、社区资源、教程和示例项目,帮助开发者系统学习 Docker 技术,掌握容器化应用的构建、运行、管理和优化方法。
- 示例项目与练习 本章节提供 Docker 示例项目和练习,包括容器化应用部署、Docker Compose 多服务编排、镜像优化、网络配置和存储管理,帮助开发者通过实战加深对...