Docker Compose
Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。它通过一个 YAML 文件(通常命名为 docker-compose.yml
)来配置应用程序的服务、网络和卷等资源,从而简化多容器应用的部署和管理。
- Docker Compose 依赖于 Docker 引擎运行。
- 需要先安装 Docker 才能使用 Docker Compose。
相关文档:Get started with Docker Compose , 菜鸟教程
Compose插件
在 Windows 和 macOS 上,安装 Docker Desktop 时会自动安装 Docker Compose。对于 Linux 用户,从 Docker Engine 20.10.0 版本开始,默认集成了 Docker Compose 插件(即 docker compose
命令,没有连字符)。可以通过以下命令确认是否已集成 Compose 插件:
docker compose version
官方推荐使用 Docker Compose 插件(docker compose
),因为它是未来发展的方向,并且完全集成到了 Docker CLI 中。独立版本的 docker-compose
工具正在逐步被淘汰,仅用于向后兼容的目的。
特性 | Docker Compose 插件 | Docker Compose 独立版本 |
---|---|---|
命令格式 | docker compose (无连字符) |
docker-compose (有连字符) |
集成方式 | 集成到 Docker CLI | 独立二进制文件 |
安装方式 | 随 Docker Engine 自动安装 | 需要单独安装 |
推荐程度 | 官方推荐,未来主推方向 | 逐步淘汰,仅用于向后兼容 |
兼容性 | 支持 Docker 最新功能(如 BuildKit) | 功能更新较慢 |
若需要安装独立版本的 Docker Compose 可参照文档:Install the Docker Compose standalone
部署WordPress
以下是一个简单的 docker-compose.yml
文件示例,用于启动一个包含 WordPress 和 MySQL 的应用:
version: '3.8'
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: example
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
image: wordpress:latest
ports:
- "8080:80"
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
depends_on:
- db
volumes:
db_data:
在 docker-compose.yml
文件所在目录下运行以下命令以启动服务:
docker compose up
使用 -d
参数可以在后台运行:
docker compose up -d
Compose常用命令
命令 | 描述 |
---|---|
docker compose up |
启动服务。 |
docker compose down |
停止并删除服务。 |
docker compose ps |
查看运行中的容器状态。 |
docker compose logs |
查看服务日志。 |
docker compose build |
构建自定义镜像。 |
docker compose exec |
在运行中的容器中执行命令。 |
docker compose pull |
拉取服务所需的镜像。 |
docker compose restart |
重启服务。 |
查看运行状态:
docker compose ps
停止服务,使用 -v
参数可以删除关联的卷:
docker compose down -v
查看日志:
docker compose logs
重启服务:
docker compose restart
构建自定义镜像,如果服务使用本地 Dockerfile,可以使用以下命令构建镜像:
docker compose build
使用 Docker Compose 可以极大简化多容器应用的部署和管理,提升开发效率。