Docker Compose 教程
Docker Compose 教程
docker-compose 是一个用于定义和管理多个 Docker 容器的工具。它使用 docker-compose.yml 文件来描述服务、网络和存储卷,让你可以用一条命令启动所有容器。
第一步:安装 Docker Compose
1.1 Windows / Mac
 如果你安装了 Docker Desktop,那么 docker-compose 已经内置了,你可以直接使用。
1.2 Linux
 在 Linux 上,你可以使用以下命令安装:
1  | sudo apt update  | 
检查是否安装成功:
1  | docker-compose --version  | 
第二步:创建 Docker Compose 项目
我们来创建一个包含 Nginx 和 Redis 的简单项目。
2.1 创建项目目录
1  | mkdir my-project && cd my-project  | 
2.2 创建 docker-compose.yml 文件
在 my-project 目录下,创建一个名为 docker-compose.yml 的文件:
1  | version: '3' # 指定 Docker Compose 版本  | 
第三步:启动服务
在 docker-compose.yml 所在的目录执行:
1  | docker-compose up -d  | 
解释:
-d让容器在后台运行这条命令会自动拉取
nginx和redis镜像,并启动它们
第四步:管理容器
4.1 查看运行中的容器
1  | docker-compose ps  | 
4.2 查看日志
1  | docker-compose logs  | 
如果想查看某个服务的日志,比如 nginx:
1  | docker-compose logs nginx  | 
4.3 进入某个容器
如果你想进入 nginx 容器:
1  | docker-compose exec nginx /bin/sh  | 
4.4 停止和删除所有容器
1  | docker-compose down  | 
如果还想删除所有数据卷:
1  | docker-compose down -v  | 
第五步:使用数据库
假设我们要添加一个 MySQL 服务,修改 docker-compose.yml:
1  | version: '3'  | 
然后执行:
1  | docker-compose up -d  | 
现在 MySQL 也会作为一个服务启动。
第六步:使用 Dockerfile 自定义服务
有时候我们需要自定义应用,比如一个 Python Web 服务器。
6.1 创建 Dockerfile
在 my-project 目录下,新建 app 文件夹,并在其中创建 Dockerfile:
1  | FROM python:3.9  | 
6.2 创建 app.py
在 app 目录下,新建 app.py:
1  | from flask import Flask  | 
6.3 修改 docker-compose.yml
修改 docker-compose.yml,添加 Flask 应用:
1  | version: '3'  | 
6.4 运行 Flask 应用
执行:
1  | docker-compose up -d  | 
然后访问 http://localhost:5000,你应该能看到 "Hello from Flask!"。
总结
docker-compose up -d启动所有服务docker-compose down停止并删除容器- 可以使用 
Dockerfile自定义服务 depends_on让服务按顺序启动
这样,你就可以用 docker-compose 轻松管理多个容器了!