Docker Compose 是一个用于定义和运行多容器 Docker 应用的工具。你可以使用 docker-compose.yml
文件来配置应用的服务,然后用单个命令启动所有服务。
Windows 上 Docker Compose 使用教程
1. 安装 Docker Desktop
首先,确保已经安装了 Docker Desktop for Windows。Docker Compose 已经集成在 Docker Desktop 中,因此只需要安装 Docker Desktop,就会自动包含 Docker Compose。
可以在 Docker 官方网站 下载并安装 Docker Desktop。
2. 验证 Docker 和 Docker Compose 安装
安装完成后,打开 PowerShell 或者 CMD,运行以下命令来验证 Docker 和 Docker Compose 是否安装成功:
docker --version
docker-compose --version
如果安装正确,你应该能看到 Docker 和 Docker Compose 的版本信息。
3. 创建项目文件夹
假设你正在创建一个多容器应用,比如一个简单的 Web 应用,包含一个前端和一个后端。你可以在 Windows 上创建一个文件夹来保存你的 Docker Compose 配置文件。
mkdir my-docker-compose-project
cd my-docker-compose-project
4. 编写 docker-compose.yml
文件
在项目文件夹中创建一个 docker-compose.yml
文件。docker-compose.yml
文件用于定义所有服务的配置。以下是一个简单的示例:
version: '3'
services:web:image: nginx:latestports:- "8080:80"db:image: mysql:8environment:MYSQL_ROOT_PASSWORD: exampleMYSQL_DATABASE: mydbvolumes:- db_data:/var/lib/mysql
volumes:db_data:
docker-compose.yml
解析:
- version: 定义 Docker Compose 文件的版本。
'3'
是目前较常用的版本。 - services: 定义应用中的所有服务,每个服务通常对应一个容器。
- web: 这是 Web 服务,使用官方的
nginx
镜像。image
: 使用的镜像。ports
: 将容器的 80 端口映射到宿主机的 8080 端口。
- db: 这是数据库服务,使用官方的
mysql
镜像。environment
: 定义环境变量,用于设置 MySQL 的根密码和数据库。volumes
: 持久化 MySQL 数据库数据,将数据存储在db_data
卷中。
- web: 这是 Web 服务,使用官方的
- volumes: 用于定义 Docker 卷,
db_data
卷用于存储 MySQL 数据。
5. 运行 Docker Compose
在 docker-compose.yml
文件所在的目录下,打开命令行(PowerShell 或 CMD),运行以下命令来启动 Docker Compose:
docker-compose up
这个命令会根据 docker-compose.yml
中的定义,启动所有的服务。在初次启动时,Docker Compose 会拉取相关镜像并启动容器。
up
命令会启动所有定义的服务,默认情况下会在前台运行。- 如果希望在后台运行容器,可以加上
-d
(detached)参数:
docker-compose up -d
6. 查看服务状态
你可以运行以下命令查看当前运行的服务和容器:
docker-compose ps
这将列出所有由 Docker Compose 启动的容器,包括容器 ID、名称、状态等。
7. 访问服务
- 你可以通过浏览器访问
http://localhost:8080
来查看 Nginx Web 服务的页面。 - 数据库服务运行在
mysql
容器中,端口默认为 3306。如果你想在 Windows 上通过工具(例如 Navicat)访问数据库,可以使用以下连接信息:- 主机:
localhost
- 用户名:
root
- 密码:
example
- 数据库:
mydb
- 端口: 3306
- 主机:
8. 查看容器日志
你可以查看容器的日志以调试服务:
docker-compose logs
如果只想查看某个服务的日志,可以指定服务名称:
docker-compose logs web
9. 停止和移除容器
当你完成工作后,可以使用以下命令停止所有运行中的容器:
docker-compose down
这个命令会停止并删除所有由 docker-compose.yml
启动的容器。注意,使用 down
时会删除所有容器,但不会删除数据卷。如果你想删除数据卷,可以使用:
docker-compose down -v
10. 修改配置后重启服务
如果你修改了 docker-compose.yml
文件,可以通过以下命令重新启动服务:
docker-compose up -d
11. 查看 Docker Compose 的其他命令
12. Docker Compose 进阶使用
-
服务依赖关系:如果服务之间有依赖关系(比如 Web 服务需要等待数据库服务启动),可以使用
depends_on
属性来指定启动顺序。services:web:image: nginxdepends_on:- dbdb:image: mysql:8environment:MYSQL_ROOT_PASSWORD: example
-
多环境配置:Docker Compose 支持多个配置文件,你可以为不同的环境(例如开发、测试、生产)使用不同的配置文件。在运行时通过
-f
参数指定多个配置文件:docker-compose -f docker-compose.yml -f docker-compose.prod.yml up
总结:
- 安装 Docker Desktop:Docker Compose 是 Docker Desktop 的一部分,无需单独安装。
- 创建
docker-compose.yml
文件:定义服务、卷和其他配置。 - 使用
docker-compose up
启动服务:启动所有服务并查看日志。 - 停止和删除服务:使用
docker-compose down
停止并删除容器。
希望这个教程能帮你入门 Docker Compose,管理和部署多容器应用。