docker-compose 源码分析

简介: 最近搞 devops 相关的内容,将机房的机器集中起来,方便服务部署,算力集中管理等。在 k8s 等都基本搭建完毕之后,闲暇时间学习下 docker-compose 工作原理。

最近搞 devops 相关的内容,将机房的机器集中起来,方便服务部署,算力集中管理等。在 k8s 等都基本搭建完毕之后,闲暇时间学习下 docker-compose 工作原理。

环境准备

下载 compose 源码, 当前最新版本是 1.23.0

$ git clone https://github.com/docker/compose

然后通过 pycharm 导入到项目

架构图

img_7c96827d3fcce6004d7b3002ad66358e.jpe
docker-compose 架构图.jpg

在 docker-compose 中使用 docker api 的方式来驱动 dockerd, 如上图所示,所有内容均在 Container 中对 docker 常见操作进行封装。然后在 Project / Service 对象中进行调用

执行流程

  1. 执行 docker-compose 命令时,进入到程序主入口 main() 函数
  2. 在 main() 函数中调用 dispatch() 函数进行将命令转换为 可执行的对象

a. 构建 DocoptDispatcher 对象, 并解析相关参数置功能基础信息内容
b. 创建 Project 对象,并链接相应的 docker client api
c. 创建 TopLevelCommand 对象,并解析相关的参数配置

  1. 执行指令内容
目录
相关文章
|
2月前
|
关系型数据库 MySQL API
|
1月前
|
监控 NoSQL 时序数据库
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
262 77
|
6天前
|
存储 Docker 容器
Docker-基础(数据卷、自定义镜像、Compose)
通过数据卷实现持久化存储,通过自定义镜像满足特定需求,通过Docker Compose方便地管理多容器应用
51 27
|
7天前
|
存储 Docker 容器
Docker-基础(数据卷、自定义镜像、Compose)
通过数据卷实现持久化存储,通过自定义镜像满足特定需求,通过Docker Compose方便地管理多容器应用。掌握这些Docker基础概念和操作,可以显著提高开发和部署效率,确保应用程序的可移植性和可扩展性。
54 22
|
25天前
|
存储 Kubernetes Docker
Kubernetes(k8s)和Docker Compose本质区别
理解它们的区别和各自的优势,有助于选择合适的工具来满足特定的项目需求。
119 19
|
1月前
|
关系型数据库 MySQL Docker
《docker高级篇(大厂进阶):5.Docker-compose容器编排》包括是什么能干嘛去哪下、Compose核心概念、Compose使用三个步骤、Compose常用命令、Compose编排微服务
《docker高级篇(大厂进阶):5.Docker-compose容器编排》包括是什么能干嘛去哪下、Compose核心概念、Compose使用三个步骤、Compose常用命令、Compose编排微服务
113 24
|
1月前
|
关系型数据库 MySQL Docker
《docker高级篇(大厂进阶):5.Docker-compose容器编排》包括是什么能干嘛去哪下、Compose核心概念、Compose使用三个步骤、Compose常用命令、Compose编排微服务
《docker高级篇(大厂进阶):5.Docker-compose容器编排》包括是什么能干嘛去哪下、Compose核心概念、Compose使用三个步骤、Compose常用命令、Compose编排微服务
161 6
|
3月前
|
缓存 监控 持续交付
|
2月前
|
运维 开发者 Docker
Docker Compose:简化容器化应用的部署与管理
Docker Compose:简化容器化应用的部署与管理
|
2月前
|
Docker 微服务 容器
使用Docker Compose实现微服务架构的快速部署
使用Docker Compose实现微服务架构的快速部署
99 1

热门文章

最新文章