六、Docker Compose项目
1、 Docker Compose 是一个用来创建和运行多容器应用的工具。使用 Compose 首先需要编写 Compose 文件来描述多个容器服务以及之间的关联,然后通过命令根据配置启动所有的容器。 Docker Compose 是一个用来创建和运行多容器应用的工具。使用 Compose 首先需要编写 Compose 文件来描述多个容器服务以及之间的关联,然后通过命令根据配置启动所有的容器。
2、使用过程
使用 Compose 的三个过程如下:
-
定义应用程序的环境,即 Dockerfile
-
定义组成应用程序的服务,一般为定义 docker-compose.yml 文件
-
启动整个应用程序
关于 docker-compose.yml 文件的详细编写格式可以参考:https://docs.docker.com/compose/compose-file/#reference-and-guidelines
目前有三种版本的 Compose 文件格式:
-
version 1: 最早的版本使用传统格式,将在未来的 Compose 版本中被弃用
-
version 2: 现在使用最多的文件格式
-
version 3: 最新的版本,旨在 Compose 和被集成到 Docker Engine 中的 swarm mode 之间互相兼容(swarm 在下一节的内容会学习相关的知识)。
3、安装
4、创建Docker Compose服务 -Web+redis
(1)目录结构
-
web.py
-
requirement.txt
-
Dockerfile
-
docker-compose.yml
(2)启动/暂定服务
docker-compose up/down
5、与Docker Swarm对比
定义多容器的应用程序,但是多个容器依然只能在单个主机上工作。根据启动时信息可以看到没有使用集群模式部署服务。
6、使用集群部署服务
-
修改docker-compose.yml
-
停止使用docker-compose启动的容器,使用docker stack deploy命令部署
-
该命令会创建两个服务,不过与直接使用 docker-compose 不同的是,该命令部署的是一个堆栈(stack),即一组相互关联的服务,服务会被部署在集群中,而不是单个节点。并且此时我们创建的是服务,而不是单个容器,即便我们暂停或删除运行副本任务的容器,该容器也会再次启动。