文章目录
介绍
Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。它允许你通过一个 YAML 文件来配置应用程序的服务、网络和卷,然后使用一条命令即可创建和启动所有服务。Docker Compose 使得管理复杂的应用程序变得简单,特别适合开发和测试环境。
特点
-
声明式配置:使用 YAML 文件(通常命名为 docker-compose.yml)来声明应用程序的服务、网络和卷,使得配置更加清晰和易于管理。
-
一键启动和停止:通过 docker-compose up 命令可以启动所有定义的服务,通过 docker-compose down 命令可以停止并移除所有服务。
-
依赖管理:Docker Compose 支持服务之间的依赖关系,可以指定服务的启动顺序。
-
环境变量和配置文件:可以使用 .env 文件来定义环境变量,还可以将配置文件挂载到容器中。
-
网络管理:支持定义自定义网络,使得容器之间可以方便地进行通信。
-
卷管理:支持定义数据卷,用于持久化数据和共享数据。
基本使用
1.编写 docker-compose.yml 文件
创建docker compose文件存放目录
mkdir /home/docker-work
创建docker-compose.yml 文件
vi docker-compose.yml
编写文件
# 名称
name: myblog
# 服务
services:
# 服务名称
mysql:
# 容器名称
container_name: mysql
# 使用镜像
image: mysql:8.0
# 端口映射
ports:
- "3306:3306"
# 环境变量设置
environment:
- MYSQL_ROOT_PASSWORD=123456
- MYSQL_DATABASE=wordpress
# 数据挂载,注意如果是定义了数据卷,则必须在下面数据卷下声明
volumes:
- mysql-data:/var/lib/mysql
- /app/myconf:/etc/mysql/conf.d
# 设置开机自启
restart: always
# 使用网络
networks:
- blog
wordpress:
image: wordpress
ports:
- "8080:80"
environment:
WORDPRESS_DB_HOST: mysql
WORDPRESS_DB_USER: root
WORDPRESS_DB_PASSWORD: 123456
WORDPRESS_DB_NAME: wordpress
volumes:
- wordpress:/var/www/html
restart: always
networks:
- blog
depends_on:
- mysql
# 数据卷
volumes:
mysql-data:
wordpress:
# 网络
networks:
blog:
更多详细配置请参考官网文档:https://docs.docker.com/reference/compose-file/
2.在文件夹下运行 docker-compose.yml 文件
docker compose -f [要运行的docker-compose文件名称] up -d
docker compose -f docker-compose.yml up -d
3.验证
docker ps
4.停止docker-compose
docker compose -f [运行的docker-compose文件名称] down
docker compose -f compose.yaml down
小结
Docker Compose 是 Docker 生态系统中的一个重要工具,它极大地简化了多容器应用程序的部署和管理。通过使用 Docker Compose,你可以更加高效地构建和运行复杂的应用程序。