Docker-compose容器编排

⼀、Docker-compose 定义

1. docker compose 是 docker 官⽅的开源项⽬,负责实现对 docker 容器集群的快速编排(容器,依赖,⽹络,挂载。。)

2. compose 是 docker 公司推出的⼀个⼯具软件,可以管理多个 docker 容器组成的应⽤

3. 需要定义⼀个 YAML 格式的配置⽂件 docker-compose.yml,写 好多个容器之间的调⽤关系

4. 使⽤ compose 的步骤、

5.

     1. 使⽤ Dockerfile 定义各个微服务应⽤并构建出对应的镜像⽂ 件Dockerfile 的使⽤,以便可以在任何地⽅复制。

     2. 使⽤ docker-compose.yml 定义⼀个完整的业务单元,安排 好整体应⽤中的各个容器服务。       3. 最后,执⾏ docker-compose up 命令来启动并运⾏整个应 ⽤程序,完成⼀键部署。

⼆、Docker-compose 产⽣背景

1. 使⽤ Dockerfile 定义镜像⽂件,再⼿动构建、运⾏容器等操 作,⽽微服务架构⼀般包含若⼲个微服务,且每个微服务⼀般都 会部署多个实例,所以,若每个微服务都需要⼿动启停,那么维 护量会⾮常庞⼤,并且⼯作效率也会很低。

2. ⽽ compose 是⽤于定义和运⾏多容器 docker 应⽤程序的⼯ 具。通过 compose,可以使⽤ YML ⽂件来配置应⽤程序需要 的所有服务。

3. 仅需使⽤⼀个命令,就可以从 YML ⽂件配置中创建并启动所有 服务。

4. Compose 可以基于 Compose ⽂件帮我们快速的部署分布式应 ⽤,⽆需⼿动⼀个个创建和运⾏容器。

5. Compose ⽂件是⼀个⽂本⽂件,通过指令定义集群中的每个容 器如何运⾏。

三、Docker-compose 核⼼概念

Docker-compose 将管理的容器分为三层:⼯程(project)、 服务(service)、容器(container)

1. ⼯程:运⾏ compose 的⽬录下所有的⽂件,包括 dockercompose.yml、extends ⽂件、环境变量⽂件等组成⼀个⼯程, 若⽆特殊指定⼯程,⼯程名即为当前⽬录名。⼯程的默认配置⽂ 件为 docker-compose.yml,可通过环境变量 COMPOSE_FILE 或 -f 参数⾃定义配置⽂件,其定义了多个有依赖关系的服务及 每个服务运⾏的容器。

2. 服务:⼀个⼯程中包含多个服务,每个服务中定义了容器运⾏的 镜像、参数、依赖等。⼀个服务中可包括多个容器实例。

3. 容器:被 docker-compose 管理或部署的容器集群,调⽤ docker 服务提供的 API 来对容器进⾏管理,只要操作的平台⽀ 持 docker API,即可在其上进⾏ compose 的容器编排。

四、YAML ⽂件的格式和语法

1、YAML ⽂件格式

1. yaml 是⼀种标记语⾔很直观的数据序列化格式,可读性很⾼。 类似于 xml 描述性语⾔,语法⽐xml简单的很多。

2. yaml 数据结构通过缩进进⾏表示,连续的项⽬通过减号来表 示,键值对⽤冒号分隔,数组⽤中括号括起来,hash⽤花括号 括起来。

3. yaml ⽂件的基本格式由⼀系列键值对构成。每个键值对都⽤冒 号“: ”分隔

  key: value

1. 在 yaml 中,键和值之间只需要⼀个空格,这是为了保证 yaml ⽂件的可读性和⼀致性

2. 对于字符串值,可以使⽤单引号或者双信号将其括起来,这样可 以避免出现特殊字符或空格等问题

name: 'Meng Mr'

age: "34"

1. 如果值包含特殊字符(如冒号或短横线),则应该使⽤引号将其 括起来

description: "This is a YAML file: good for configuation files."

2、YAML 注意事项

1. 不⽀持制表符 tab 键缩进,需要使⽤空格缩进。

2. 通常开头缩进 2 个空格。

3. 字符后缩进 1 个空格,如:冒号,逗号,横杠。

4. ⽤ # 表示注释。

5. 如果包含特殊字符⽤单引号引起来。

6. 布尔值(true、false、yes、no、on、off)必须使⽤“”引号括起 来,这样分析器会将它们解释为字符串。

3、列表和数组

在yaml中,可以使⽤“-”符号表示⼀个列表和数组

4、嵌套数据结构  

yaml⽀持嵌套数据结构,可以⽤缩进来表示不同层级之间的关系, 可使⽤ # 号表示注释信息。

五、Docker-compose 安装

1. 官⽹:https://docs.docker.com/compose/ 

2. Github:https://github.com/docker/compose#docker-compos e-v2

3. 需要提前添加好 apt 仓库,因为之前安装过 docker,所以不需 要在准备。

六、docker-compose 命令解析

1、⽂件内常⽤指令字段

(1)version

指定了Docker compose编排⽂件的版本 Docker Compose ⽬前有三个版本,分别为 Version1、 Version2和Version3。

Version1 是较早的版本,它将来会被弃⽤。

Version2 是⽬前的稳定版本,⽀持更多的指令。

Version3 在功能上与 Version2 类似,但进⾏了⼀些改进和 扩展,例如增加了对 Docker BuildKit 的⽀持,可以加速构 建过程。

(2)service

指定了在 docker compose 编排中要运⾏的服务,每个服务都有⼀ 个名称,并指定要使⽤的镜像和容器的配置选项。

(3)image

指定要使⽤的 docker 镜像。

4)build

允许在 docker compose 编排中指定 dockerfile 的位置。

(5)environment

指定了要设置的环境变量。

6)volumes

挂载宿主机路径或命名卷

1. 指定路径挂载

1. ⽣成 volume 卷挂载

1. 共享⽬录挂载

(7)port

指定了要宿主机映射到容器的端⼝,端⼝不能低于 60(宿主机端 ⼝:容器端⼝),如果选择的端⼝号低于 60,可能会与系统保留的 知名端⼝冲突。

8)expose

⽤于在 docker 容器内部暴露端⼝的选项。

9)networks

加⼊⽹络,引⽤顶级 networks 条⽬.

10)hostname

设定容器主机名

(11)command

指定容器启动时要运⾏的命令,覆盖构建时的默认命令

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值