Docker-Compose 简明教程
简介
docker-compose
是一个用于定义和运行多容器 Docker 应用程序的工具。通过 docker-compose
,你可以使用 YAML 文件来配置你的应用程序的服务。然后,只需使用一个简单的命令,就可以创建并启动你配置的所有服务。
安装 Docker-Compose
首先,确保你的系统已经安装了 Docker。接着,你可以按照以下步骤安装 docker-compose
:
对于 Linux:
可以修改版本号,直接修改v2.24.0,最新版本地址:https://github.com/docker/compose/releases
sudo curl -L "https://github.com/docker/compose/releases/download/v2.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
注意Docker Compose 存放在 GitHub,不太稳定。也可以通过设置代理来高速安装 Docker Compose。
sudo curl --proxy "https://xxx.x.x.x:3128" -L "https://github.com/docker/compose/releases/download/v2.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
查看安装情况
docker-compose --version
Docker Compose version v2.24.0
对于 Windows 和 macOS:
Windows 和 macOS 用户可以通过安装 Docker Desktop 来获取 docker-compose
,因为它已包含在 Docker Desktop 中。
docker-compose.yml
文件
docker-compose
主要通过一个名为 docker-compose.yml
的配置文件来管理服务。这个文件定义了组成你的应用的服务、网络和卷。
示例
以下是一个简单的 docker-compose.yml
文件示例,它定义了一个 web 服务,该服务使用了 Docker Hub 上的 nginx
镜像:
version: '3.8'
services:
web:
image: nginx
ports:
- "80:80"
常用命令
以下是一些 docker-compose
的常用命令,这些命令在日常工作中更有效地使用它。
1. 启动服务
docker-compose up
: 启动并运行整个应用。如果在后面加上-d
,则会在后台运行。
2. 停止服务
docker-compose down
: 停止并移除由docker-compose up
命令创建的容器和网络。如果加上--volumes
或-v
,还会移除数据卷。
3. 重启服务
docker-compose restart
: 重启所有由docker-compose up
命令启动的服务。
4. 查看服务状态
docker-compose ps
: 列出与当前目录的docker-compose.yml
文件相关的所有容器的状态。
5. 查看日志
docker-compose logs
: 查看服务的日志输出。加上-f
可以实时跟踪日志。
6. 构建服务
docker-compose build
: 构建或重新构建服务。通常用于 Dockerfile 更改后。
7. 拉取服务相关的镜像
docker-compose pull
: 拉取服务依赖的 Docker 镜像。
8. 运行一次性命令
docker-compose run
: 在一个新的容器中运行一个一次性命令。例如,docker-compose run web python manage.py shell
会在 web 服务的容器中启动 Django shell。
9. 执行命令
docker-compose exec
: 在正在运行的容器中执行命令。例如,docker-compose exec db psql -U postgres
会在 db 服务的容器中启动 PostgreSQL 命令行界面。
10. 停止服务
docker-compose stop
: 停止正在运行的服务,但不移除它们。
11. 移除服务
docker-compose rm
: 移除所有停止状态的服务容器。
这些是 docker-compose
的一些基本命令,能够帮助你更好地管理和控制你的多容器 Docker 应用程序。需要注意的是,许多命令都有附加选项,可以通过 docker-compose [command] --help
查看具体的使用方法和选项。
实践练习
- 创建一个包含上述
docker-compose.yml
文件的目录。 - 在该目录中运行
docker-compose up
。 - 打开浏览器,访问
http://localhost
,你应该能看到 Nginx 的欢迎页面。 - 使用
Ctrl+C
停止服务,并使用docker-compose down
移除服务。
结语
这只是 docker-compose
的基础入门教程。随着你对 Docker 和 docker-compose
的更深入了解,你将能够管理更复杂的多容器应用程序。