Docker compose

docker 服务编排工具,用来定义和运行多个 docker 容器的工具

docker compose 使用 YA ML 文件来配置应用程序所需要的服务

官方文档:https://docs.docker.com/reference/

compose

https://www.runoob.com/docker/docker-compose.html

Compose 使用的三个步骤:

  • 使用 Dockerfile 定义应用程序的环境
  • 使用 docker-compose.yml 定义构成应用程序的服务,这样它们可以在隔离环境中一起运行
  • 最后,执行 docker-compose up 命令来启动并运行整个应用程序

实例:redis 和 Flask 应用的搭建

  1. 新建一个文件夹

    放入 app.py、requirements.txt 等文件

  2. 创建 dockerfile 文件

    image-20210301153308371

  3. 使用 docker-compose 定义服务

    创建 docker-compose.yml 文件

  4. build and run

    docker-compose up

执行流程:

  1. 创建网络

  2. 执行 Docker-compose.yml

  3. 启动 yml 文件中定义的服务

    Docker-compose.yml

创建时默认规则:

默认服务名:文件名_服务名_num

多个服务器:集群 num表示副本数量(大型服务可能有多个副本,每个副本互不影响)

网络规则:

项目中的内容都在同一个网络下,可以通过 域名 访问

image-20210301160801135

保证 HA(高可用性)

命令
启动:docker-compose up
-d 后台启动
停止:docker-compose down 或者 ctrl+c

YAML

https://www.runoob.com/w3cnote/yaml-intro.html

基本语法

  • 大小写敏感
  • 使用缩进表示层级关系
  • 缩进不允许使用 tab,只允许空格
  • 缩进的空格数不重要,只要相同层级的元素左对齐即可
  • ‘#’ 表示注释

数据类型

  • 对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)
  • 数组:一组按次序排列的值,又称为序列(sequence) / 列表(list)
  • 纯量(scalars):单个的、不可再分的值

yaml 与 docker 版本

image-20210301162810899

向下兼容

三层结构

version:
services:
	服务1:
		#服务配置
	服务2:
		#服务配置	
		
# 其他配置 网络、券、全局规则
volumes:
network:
configs:

depends_on

image-20210301163239554

deploy 部署

expose 暴露端口

Swarm集群

onfigs:


**depends_on**

[外链图片转存中...(img-pAKimTQS-1615868937982)]

deploy 部署

expose 暴露端口

### Swarm集群

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐