目录
一、Docker Compose简介
Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。它是一个定义和运行多容器的docker应用工具。使用compose,你能通过YMAL文件配置你自己的服务,然后通过一个命令,你能使用配置文件创建和运行所有的服务。
二、Docker Compose 容器编排
● Docker Compose 前身是Fig,是一个定义及运行多个 Docker 容器的工具
● 使用 Docker Compose 不再需要使用 shell 脚本来启动容器
● Docker Compose 非常适合组合使用多个容器进行开发的场景
● 通过Docker Compose可以使用YML文件来配置应用程序所需要的的所有服务
YML文件
YAML是一种标记语言很直观的数据序列化格式,非常适合用来表达或者编辑数据结构、各种配置文件、文件大纲等,例如:许多电子邮件标题格式和YAML非常接近
● 以下是文件格式以及编写注意事项
- 不支持制表符Tab键缩进,需要使用空格缩进
- 通常开头缩进2个空格
- 字符后缩进一个字符,如冒号、逗号、横杆
- 用#号注释
- 如果包含特殊字符用单引号引起来
- 布尔值必须用引号括起来
三、Compose的概念
● 服务(service):一个应用的容器,实际上可以包括若干运行相同镜像的容器实例。
● 项目(project):由一组关联的应用容器组成的一个完成业务单元,在docker-compose.yml中定义。
这些可以理解为:
● 服务(service)就是在它下面可以定义应用需要的一些服务,代表配置文件中的每一项服务。每个服务都有自己的名字、使用的镜像、挂载的数据卷、所属的网络、依赖哪些其他服务等等,即以容器为粒度,用户需要Compose所完成的任务。
● 项目(project)代表用户需要完成的一个项目,即是Compose的一个配置文件可以解析为一个项目,即Compose通过分析指定配置文件,得出配置文件所需完成的所有容器管理与部署操作。
Compose的默认管理对象时项目,通过子命令对项目中的一组容器进行便捷地生命周期管理。
四、docker,dockerfile与docker-compose区别
● docker和操作系统无关的一个沙箱容器,宿主机安装的什么操作系统和其本身无关,在它基础上可以制作各种系统类型的基础服务
● Dockerfile是把我们手工安装docer镜像的过程变成一个配置文件的方式运行,这样每次不用一步步手敲命令去安装了,而只是需要一个配置文件运行既可生成一个镜像
● docker-compos提供了服务和项目的概念,这样一个服务可以配置多个项目,这个服务是多个项目的集合体,启动和关闭都相对一个一个项目的启动要方便很多
五、Docker Compose 配置常用字段
字段 | 说明 |
---|---|
build dockerfile context | 指定Dockerfile文件名构建镜像上下文路径 |
image | 指定镜像 |
command | 执行命令,覆盖默认莫名 |
container name | 指定容器名称,由于容器名称是唯一的,如果指定自定义名称,则无法scale |
deploy | 指定部署和运行服务相关配置,只能在Swarm模式使用 |
environment | 添加环境变量 |
networks |