docker源码学习-基础架构

声明本文学习源码为 1 1.2.0

[liyang@beta.internal.beta.10-11-147-62 docker]$ cat VERSION 
1.2.0

架构介绍

docker主要模块包括:dockerClient、dockerDaemon、DockerRegistry、Graph、Driver、libcontainer以及dockerContainer。总架构如下图所示:

这里写图片描述

各模块概述

docker clent

Docker Client 是Docker 架构中用户与Docker Daemon 建立通信的客户端。

docker daemon

engine

Engine 是Docker 架构中的运行引擎,同时也是Docker 运行的核心模块。Engine 存储着
大量的容器信息,同时管理着Docker 大部分Job 的执行。换言之,Docker 中大部分任务的
执行都需要Engine 协助,并通过Engine 匹配相应的Job 完成Job 的执行。

JOB

Job 可以认为是Docker 架构中Engine 内部最基本的工作执行单元。DockerDaemon 可
以完成的每一项工作都会呈现为一个Job。例如,在Docker 容器内部运行一个进程,这是
一个Job;创建一个新的容器,这是一个Job;在网络上下载一个文档,这是一个Job;包括
之前在Docker Server 部分谈及的,创建Server 服务于HTTP 协议的API,这也是一个Job,
等等。
有关Job 接口的设计,与UNIX 进程非常相仿。比如说,Job 有一个名称,有运行时参
数,有环境变量,有标准输入与标准输出,有标准错误,还有返回状态等。
对于Job 而言,定义完毕之后,运行才能完成Job 自身真正的使命。Job 的运行函数
Run() 则用以执行Job 本身。

Docker Registry

Docker Registry 是一个存储容器镜像(Docker Image)的仓库。公有Registry 与私有
Regsitry 就是两种场景模式不同的Docker Registry。其中,大家熟知的Docker Hub,就是全
球范围内最大的公有Registry。Docker 可以通过互联网访问Docker Hub,并下载容器镜像;
同时Docker 也允许用户构建本地私有Registry,使容器镜像的获取在内网完成。

Graph

Graph 在Docker 架构中扮演的角色是容器镜像的保管者。不论是Docker 下载的镜像,
还是Docker 构建的镜像,均由Graph 统一化管理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值