Compose
Compose
项目负责实现对 Docker 容器集群的快速编排,用于快速部署分布式应用。
Compose
定位是 「定义和运行多个 Docker 容器的应用(Defining and running multi-container Docker applications)」
介绍
Compose
允许用户通过一个单独的 docker-compose.yml
模板文件(YAML 格式)来定义一组相关联的应用容器为一个项目(project)。 Compose
中有两个重要概念:
- 服务 (
service
):一个应用的容器,实际上可以包括若干运行相同镜像的容器实例。 - 项目 (
project
):由一组关联的应用容器组成的一个完整业务单元,在docker-compose.yml
文件中定义。
一个项目可以由多个服务(容器)关联而成,Compose
面向项目进行管理。
Machine
Docker Machine 是 Docker 官方编排(Orchestration)项目之一,负责在多种平台上快速安装 Docker 环境。
Swarm mode
Swarm
提供 Docker 容器集群服务,使用它,用户可以将多个 Docker 主机封装为单个大型的虚拟 Docker 主机,快速打造一套容器云平台。
基本概念
节点
集群中的节点分为管理(manager
)节点和工作(worker
)节点:
- 管理节点:用于集群的管理,一个
swarm
集群中可以有多个管理节点,但是只能有一个 leader 节点,leader 节点由 raft 算法选举出。docker swarm
命令基本只能在管理节点执行(除了docker swarm leave
命令可以在工作节点执行)。 - 工作节点:用于执行任务,管理节点将服务 (
service
) 下发至工作节点执行。管理节点也默认为工作节点。
服务和任务
- 任务(
Task
)是swarm
中最小的调度单位,目前来说就是一个单一的容器。 - 服务(
Services
)是指一组任务的集合,服务定义了任务的属性。服务有两种模式,通过docker service create
的--mode
参数指定:replicated services
:按照一定规则在各个工作节点上运行指定个数的任务。global services
:每个工作节点上运行一个任务。
下图是容器、服务、任务的关系: