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