docker整体架构描述

关于Docker,上个学期就一直在学,去实习之后更觉其重要性,所以读了一段时间源码,总结并记录一下,权当加深印象。


docker架构

阅读源码首先脑海里要有一张源码地图,要明白docker各个部分实现了哪些功能。
docker的架构图如下:
这里写图片描述

总体包含七个部分:client,daemon,driver,libcontainer,container,graph,registry。
外表来看,docker是一个C/S的架构,用户可以在客户端输入各种指令,客户端负责接受请求并作出相应的响应返回给客户。

DockerClient

DockerClient 负责接受并传递请求指令 。

DockerDaemon

DockerDaemon的功能主要有两个:

  1. 负责接受client的请求
  2. 管理docker容器

dockerdaemon的架构主要可以分为两部分:dockerserver和engine

  1. DockerServer
    DockerServer作为服务端最主要的作用就是配合client端将请求指令接受过来,如图所示,DockerServer主要分为三个部分:Http.server,mux.server,Handler。
    DockerServer运行时会从一个名为mux的包中创建一个mux.Router路由器,然后为路由器中添加相关的路由项用于路由信息, 每个路由项由HTTP请求方法(get,post,put,delete)+URL+Handler三部分组成。
    DockerServer每收到一个请求就会生成一个goroutine然后进行相应的解析、匹配相应的路由项最后会找到相匹配的Handler来处理,Handler处理玩请求之后给DockerClient返回响应。

  2. Engine
    Engine是docker中的运行引擎,存储着大量的容器信息并管理着大部分job的执行。
    job是docker中的最小执行单元,类似于unix中的进程,也会有相应的名字、参数、环境变量、标准输入输出、返回状态等等。docker每进行一次相应的操作都会 生成一个相应的Job,比如创建一个容器、下载一个文件等等都是由job完成的。

DockerDriver

DockerDriver是docker内部的驱动模块,负责容器内部相关网络、文件系统等的构建

libcontainer

libcontainer主要是对linux内核的一些诸如namespace、cgroups、capabilities等特性做了封装

Graph

DockerRegistry

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值