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
轻松管理多个容器了!