Docker Compose

Compose是一个定义运行多个容器Docker应用程序,通过Compose,可以使用一个YAML文件来配置应用程序的服务,然后通过一个单一命令,可以根据配置创建和启动所有服务。

注解

有点类似Kubernetes的Pod,可以定义一组容器相互关联。

Compose可以工作在所有环境:production, staging, development, testing, 类似的CI工作流。

使用Compose有3个基本步骤:

  • 使用一个 Dockerfile 定义应用程序环境,这样它能够在任何地方重新运行
  • docker-compose.yml 文件中定义服务来启动app,这样这些应用可以在一个隔离环境中一起运行
  • 使用 docker-compose up 启动和运行完整的应用组合

docker-compose.yml 案例如下:

version: '3'
services:
  web:
    build: .
    ports:
    - "5000:5000"
    volumes:
    - .:/code
    - logvolume01:/var/log
    links:
    - redis
  redis:
    image: redis
volumes:
  logvolume01: {}

安装Docker Compose

Docker Compose依赖Docker Engine工作,所以需要先确保Docker Engine已经在本地或者远程服务器上安装好。

  • macOS安装Docker Desktop for Mac 或者 for Windows,则Docker Compose已经作为安装的程序组件一起安装了
  • 在Linux系统中,首先通过发行版安装 docker ,然后再按照下面介绍的步骤安装Compose
  • 在Linux系统中,可以设置 无需sudo运行docker Compose

在macOS中安装Compose

参考 macOS安装Docker 就可以获得Compose

在Linux中安装Compose

Linux平台下,需要从 Compose repository release page on GitHub 下载安装,使用 curl 命令:

sudo curl -L "https://github.com/docker/compose/releases/download/1.25.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose

升级Compose

docker-compose migrate-to-labels

卸载Compose

sudo rm /usr/local/bin/docker-compose