内容纲要

查看【Docker & Kubernetes】专题可浏览更多内容

Docker Compose 是一个帮助运行多容器应用程序的工具。

例如说有一些工作是需要多个容器互相配合来完成的,就可以使用 Docker Compose,并且容器的相关参数都可以写在配置文件里,如此也方便管理

以下是 Docker Compose 的一些主要优势:

  • 通过提供隔离的项目名称,简化了对多个环境的管理;
  • 通过自动将以前的容器运行数据复制到新的环境中,防止数据丢失;
  • 通过只更新自上次运行以来发生变化的容器,加快了创建时间;
  • 使用定义的环境变量在不同的环境中轻松移植应用程序;

安装

如果你是 Docker Desktop 用户则已经带有 Docker Compose 不需要额外安装

如果你是 Linux Server 用户并已经安装了 Docker Engine 和 Docker CLI 则可以使用包管理器安装 Docker Compose,例如:

# Debian 谱系
sudo apt update
sudo apt install docker-compose-plugin

# Red Hat 谱系
sudo yum update
sudo yum install docker-compose-plugin

也可以手动安装:

sudo curl -SL https://github.com/docker/compose/releases/download/v2.16.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose

不要直接使用以上链接,而是前往 https://github.com/docker/compose/releases/ 找到你系统对应的系统架构,如上就是 2.16.0 的 x64 架构,将之替换使用

# 赋予运行权限
sudo chmod +x /usr/local/bin/docker-compose

注意,使用包管理器安装和手动安装所使用的命令不同:

# 使用包管理器安装
docker compose version

# 使用手动安装
docker-compose version

如果看到返回 Docker Compose version v2.16.0 则表示 Docker Compose 安装成功

使用

Compose 使用 YAML 文件来配置服务,你需要一个编辑器并且能够验证 YAML 格式,如果你没有趁手的编辑器,此处推荐 VSCode 并安装插件 Docker

Compose 的使用与 Dockerfile 类似,编写好配置文件然后使用命令运行,一个基本的 Compose 文件如下:

version: "2"

services: # 容器
  servicename: # 服务名称
    image: # 映像
    command: # 可选,如果设置,则会覆盖默认镜像里的 CMD
    environment: # 可选,相当于 docker run --env
    volumes: # 可选,相当于docker run -v
    networks: # 可选,相当于 docker run --network
    ports: # 可选,相当于 docker run -p
  servicename2:

volumes: # 可选,相当于 docker volume create

networks: # 可选,相当于 docker network create

然后使用 docker composedocker-compose 配合 up 等命令选项使用

未完待续…