安装 Docker Compose
Docker Compose 通常包含在 Docker Desktop 中,或者可以单独安装。下面介绍如何在 Linux 环境中安装 Docker Compose CLI 插件。
在 Linux 上安装 Docker Compose CLI 插件
下载并授予执行权限以安装最新的 Docker Compose CLI 插件。如果您不使用 Docker Desktop,请使用此方法安装 Docker Compose。
下载并安装 Docker Compose 插件
sudo curl -SL https://github.com/docker/compose/releases/latest/download/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
下载最新版本的 Docker Compose CLI 插件,授予执行权限,并将其放在适当的路径中。
检查 Docker Compose 版本
docker compose version
验证 Docker Compose 版本以确认安装完成。
主要的 Docker Compose 命令
Docker Compose 用于管理 `docker-compose.yml` 文件中定义的服务。使用以下选项可以轻松控制多容器应用程序。
1. 构建和运行应用程序
2. 停止和删除应用程序
3. 管理服务
生成的命令:
请尝试组合命令。
描述:
`docker compose` 执行命令。
通过组合这些选项,您可以与 AI 一起虚拟地执行命令。
`docker-compose.yml` 文件结构
Docker Compose 使用 `docker-compose.yml` 文件来定义服务、网络、卷等。此文件以 YAML 格式编写,清晰地表示应用程序的组件及其关系。
基本结构
`docker-compose.yml` 文件具有顶级键,如 `version`(版本)、`services`(服务定义)、`networks`(网络定义)和 `volumes`(卷定义)。最重要的部分是 `services` 部分,它定义了构成应用程序的每个容器。
简单的 Web 应用程序示例
version: '3.8'
services:
web:
image: nginx:latest
ports:
- '80:80'
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
depends_on:
- api
api:
build: .
ports:
- '3000:3000'
environment:
NODE_ENV: production
volumes:
data_volume:
一个简单的 `docker-compose.yml` 示例,由 Nginx Web 服务器和 Node.js 后端服务组成。
键说明
对 `docker-compose.yml` 文件中常用的关键设置的说明。
- version: 指定 Compose 文件格式版本。建议使用最新版本(例如,'3.8')。
- services: 此部分定义构成应用程序的每个容器服务。
- image: 指定用于服务的 Docker 镜像名称。(例如,`nginx:latest`)
- build: 指定用于构建镜像的 Dockerfile 的路径。(例如,`.`)
- ports: 定义主机和容器之间的端口映射。(例如,`- '80:80'`)
- volumes: 定义用于数据持久化的卷挂载。(例如,`- ./data:/app/data`)
- environment: 定义要在容器内部设置的环境变量。
- depends_on: 定义服务之间的依赖关系。(例如,当 `db` 服务必须在 `web` 服务之前启动时)
- networks: 定义服务将连接到的网络。
使用示例
通过 Docker Compose 命令的实际使用示例,了解如何有效地管理多容器应用程序。
启动 Docker Compose 项目(在后台)
docker compose up -d
读取当前目录中的 `docker-compose.yml` 文件,并在后台启动所有服务。
重启特定服务
docker compose restart web
仅重启 `docker-compose.yml` 中定义的 'web' 服务。
实时查看日志
docker compose logs -f
将所有服务的日志实时流式传输到终端,以监控应用程序的行为。
停止应用程序并移除相关资源
docker compose down -v
停止并移除所有正在运行的服务容器,并同时移除已定义的网络和匿名卷。
指定 Docker Compose 文件路径
docker compose -f /path/to/my-app/docker-compose.prod.yml up -d
运行一个具有不同名称或位于不同路径的 Compose 文件,而不是默认的 `docker-compose.yml`。