Docker Compose 入门参考
1.概述
Compose是一个用于定义和运行多容器Docker应用程序的工具。使用Compose,您可以使用一个YAML文件来配置应用服务。然后,使用一个命令,你就可以从你的配置中创建并启动所有的服务。
Compose 在软件所有研发阶段都可以使用:生产环境、阶段验证,开发环境,测试,包括CI持续集成工作流程中。
使用Compose基本上有三个步骤:
- 1.用Dockerfile定义应用程序的环境,这样它就可以在任何地方部署
- 2.在docker-compose.yml中定义组成应用程序的服务,这样它们就可以在一个独立的环境中一起运行
- 3.运行docker-compose up和Compose启动并运行整个应用程序
Compose包含用于管理应用程序的整个生命周期的命令:
- 启动、停止和重新构建服务
- 查看正在运行的服务的状态
- 对正在运行的服务的日志输出进行流处理
- 在服务上运行一次性命令
一个 docker-compose.yml 文件如下:
version: "3.8"
services:
web:
build: .
ports:
- "5000:5000"
volumes:
- .:/code
- logvolume01:/var/log
links:
- redis
redis:
image: redis
volumes:
logvolume01: {}
1.1 Docker Compose 应用场景
Docker Compose可以应用于多不同的场景,下面概述了一些常见应用场景。
开发环境
在开发软件时,在独立环境中运行应用程序并具有控制管理能力是至关重要的。可以使用Compose命令行工具创建环境并进行控制管理。
Compose文件提供了一种记录和配置应用程序的所有服务依赖项(数据库、消息队列、缓存、WEB服务API等)的方法。使用Compose命令行工具,您可以使用单个命令为每个依赖项创建和启动一个或多个容器(docker-compose up)。
这些特性一起为开发人员开始项目提供了一种方便的方式。Compose可以将多页的“开发人员入门指南”简化为单个机器可读的Compose文件和少许命令。
自动化测试环境
任何CD持续部署或CI持续集成过程的一个重要部分是自动化测试套件。自动化的端到端测试需要一个运行测试的环境。Compose为您的测试套件创建和销毁隔离的测试环境提供了一种方便的方法。通过在一个Compose文件中定义完整的环境,您可以创建和销毁这些环境,只需几个命令:
$ docker-compose up -d
$ ./run_tests
$ docker-compose down
单节点部署环境
一般情况Compose主要于开发和测试工作流。可以使用Compose将其部署到远程Docker引擎。Docker引擎可以是单个实例的Docker Machine,也可以是整个Docker Swarm集群。
2.安装Docker Compose
Docker Compose 能够在macOS, Windows, and 64-bit Linux上运行
2.1 安装先决条件
Docker Compose依赖于Docker Engine来完成任何的工作,因此请确保在本地或远程安装了Docker Engine,这取决于你的机器设置环境。
-
在像Mac和Windows的Docker desktop这样的桌面系统中,Docker Compose已经包含在其中。
-
在Linux系统上,首先按照Get Docker页面上的描述为您的操作系统安装Docker引擎,然后回到这里了解如何在Linux系统上安装Compose。
-
若要以非根用户身份运行Compose,请参见以非根用户身份管理Docker。
3.Docker Compose 环境变量
Compose有多个部分处理环境变量
在Compose文件中使用变量
在Compose文件中使用环境变量
web:
image: "webapp