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. 执行指令内容
优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/669996

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Apache Tomcat7、8、9(Java Web服务器)

Apache Tomcat7、8、9(Java Web服务器)

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。