一、简介
Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排。
通过之前的介绍,我们知道使用一个 Dockerfile 模板文件,可以让用户很方便的定义一个单独的应用容器。然而,在日常工作中,经常会碰到需要多个容器相互配合来完成某项任务的情况。例如要实现一个 Web 项目,除了 Web 服务容器本身,往往还需要再加上后端的数据库服务容器,甚至还包括负载均衡容器等。
Compose 恰好满足了这样的需求。它允许用户通过一个单独的 docker-compose.yml 模板文件(YAML 格式)来定义一组相关联的应用容器为一个项目(project)。
Compose 中有两个重要的概念:
服务 (service):一个应用的容器,实际上可以包括若干运行相同镜像的容器实例。
项目 (project):由一组关联的应用容器组成的一个完整业务单元,在 docker-compose.yml 文件中定义。
Compose 的默认管理对象是项目,通过子命令对项目中的一组容器进行便捷地生命周期管理。
使用微服务架构的系统一般包含若干个微服务,每个微服务一般部署多个实例。如果每个服务都要手动启停,那么效率低,维护量大。
二、 Docker Compose介绍
通过Docker-Compose用户可以很容易地用一个配置文件定义一个多容器的应用,然后使用一条指令安装这个应用的所有依赖,完成编写。Docker-Compose解决了容器与容器之间如何管理编排的问题。
Docker Compose工作原理图
撰写中有两个重要的概念:
- **服务(服务):**一个应用的容器,实际上可以包括多个运行相同相同的容器实例。
- **项目(项目):**由各个关联的应用容器组成的一个完整的业务单元,在docker-compose.yml文件中定义。一个项目可以由多个服务(容器)关联,组成面向项目进行管理,通过子命令对项目中的单个容器进行便捷地生命周期管理。
Compose项目由Python编写,实现上调用了Docker服务提供的API来对容器进行管理。因此,只要所操作的平台支持Docker API,就可以在其上利用Compose来进行编排管理。
Docker三大编排工具:
- Docker Compose:是用来组装多容器应用的工具,可以在 Swarm集群中部署分布式应用。
- Docker Machine:是支持多平台安装Docker的工具,使用 Docker。Machine,可以很方便地在笔记本、云平台及数据中心里安装Docker。
- Docker Swarm:是Docker社区原生提供的容器集群管理工具。
Docker Compose命令详解
Docker compose的使用非常类似于docker命令的使用,但是需要注意的是大部分的compose命令都需要到docker-compose.yml文件所在的目录下才能执行。
compose以守护进程模式运行加-d选项
三、Docker Compose安装
#下载
sudo curl -L https://github.com/docker/compose/releases/download/1.20.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
#安装
chmod +x /usr/local/bin/docker-compose
#查看版本
docker-compose version
四、实验环境
主机 | ip地址 | 服务 |
---|---|---|
docker | 192.168.1.11 | compose+wordpress |
五 docker三剑客之docker-compose
docker容器的编排工具: 解决相互有依赖关系的多个容器的管理。
[root@docke