Docker-Compose 简明教程

Docker-Compose 简明教程

CoderJia 144 2024-01-27

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 查看具体的使用方法和选项。

实践练习

  1. 创建一个包含上述 docker-compose.yml 文件的目录。
  2. 在该目录中运行 docker-compose up
  3. 打开浏览器,访问 http://localhost,你应该能看到 Nginx 的欢迎页面。
  4. 使用 Ctrl+C 停止服务,并使用 docker-compose down 移除服务。

结语

这只是 docker-compose 的基础入门教程。随着你对 Docker 和 docker-compose 的更深入了解,你将能够管理更复杂的多容器应用程序。