Docker三剑客
Docker三剑客Docker Compose、Docker Machine、Docker Swarm分别是Docker官方开源的三个项目。有着不同的功能:
Docker Compose负责实现对 Docker 容器集群的快速编排。Docker Machine负责在多种平台上快速安装 Docker 环境。Docker Swarm提供 Docker 容器集群服务,是 Docker 官方对容器云生态进行支持的核心方案。
这里主要讲一下Docker Compose,其余如果有兴趣可以自行去了解。
Docker Compose
Compose简介
Docker Compose很好的帮助我们完成需要多个容器相互配合来完成某个任务的需求。
我们需要知道Compose 中有两个重要的概念:
- 服务 (
service):一个应用的容器,实际上可以包括若干运行相同镜像的容器实例。 - 项目 (
project):由一组关联的应用容器组成的一个完整业务单元,在docker-compose.yml文件中定义。
Compose 的默认管理对象是项目,通过子命令对项目中的一组容器进行便捷地生命周期管理。
Compose 项目由 Python 编写,实现上调用了 Docker 服务提供的 API 来对容器进行管理。因此,只要所操作的平台支持 Docker API,就可以在其上利用 Compose 来进行编排管理。
Compose安装
安装十分简单,从 官方 GitHub Release 处直接下载编译好的二进制文件即可。
#linux-x86_64
sudo curl -L https://github.com/docker/compose/releases/download/2.6.0/docker-compose-linux-x86_64 > /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
#linux-armv7
sudo curl -L https://github.com/docker/compose/releases/download/2.6.0/docker-compose-linux-armv7 > /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
Compose 模板文件
Docker Compose是通过定义docker-compose.yml文件来定义组成应用的服务的,以便它们可以在隔离的环境中一起运行。
一个docker-compose.yml形如:
version: "3.9" # optional since v1.27.0
services:
web:
build: .
ports:
- "8000:5000"
volumes:
- .:/code
- logvolume01:/var/log
links:
- redis
redis:
image: redis
volumes:
logvolume01: {}
运行compose项目
docker-compose up
\