docker架构的详解

docker架构

 

一.具体部分的详解:

1.docker daemon

docker daemon是常驻的后台程序

docker server就是后台程序docker接受数据请求,然后交给route,路由给指定的容器,然后handler处理请求信息数据的(区分数据就是区分头部信息的类型,我请求的是什么类型的数据就去不同的服务器。)。然后交给docker engine,形成要给job任务。

 

2.Graph驱动模块:

Repostitory

下载的镜像保存,

GraphDB   

容器与镜像关系的记录。

镜像是不同层的文件组合,如果镜像相同的层有很多,只会合并成一份,如果有百度云盘,所有保存的电影其实在百度云上就一部。

 

3.Driver模块:

定制容器的环境,如:cpu多少,内存多少,硬盘多少,

容器的生命后期根据程序的生命周期决定,运行什么驱动什么,从而提高容器运行的效率。

driver模块的好处是需要什么驱动什么,提高容器运行的效率,如果没有网路的话,

(1)graphdriver主要用于完成镜像的管理,存储,读取,下载下来的镜像的存储也是他,驱动存储镜像

 

驱动不同的操作系统有不同的文件系统管理,

driver存储结构:

btrfs-deban

vfs-centos

aufs-ubuntu

devmapper-gm

 

(2)networkdriver

bridge 桥接到docker0上,直接进到物理机上。把容器和桥接到docker0,然后通过docker 0 转给容器,只要放到物理机上就好。

 

networkif 防火墙,路由等

ip 地址

port 端口

属于容器内部操作,放到container上就行。

 

(3)execdriver

execdriver 容器的执行驱动,负责容器在创建空间是的命名规则和容器资源限制,native一共有两个分支,LXC (1.2版本以前) native(1.2以后)跨平台用,依赖于native ,可以控制任何一个操作系统上都可以分割namespace空间和cgroup结构,

 

4. libcontainer模块

正是由于libcontainer的存在,Docker可以直接调用libcontainer,而最终操纵容器的namespace、cgroups、apparmor、网络设备以及防火墙规则等

 

5. container模块

Docker container(Docker容器)是Docker架构中服务交付的最终体现形式

 

6.rootfs模块

目录结构

 

二.详解总结:

处理数据请求的叫docker daemon

启动的也叫docker daemon

docker daemon运行在后台程序的叫docker server

 

需要对任务处理的叫docker engine

处理docker engine需要从网上下载镜像,或者从本地拉取镜像,保存在本地的叫graph,graph分成两个部分,graphDB用来存储镜像之间的存储关系,graph images 用来存储镜像的。

 

然后开始进行驱动,驱动分为三个部分进行驱动,第一个驱动是物理机启动时需要哪些目录结构,镜像所需要的目录结构,他直接启动的是rootfs,然后启动的是网路结构,networkdriver,让容器和物理机能连接起来,

bridge:启动容器后会出现docker0,关闭后就会消失,真正通讯是容器桥接到docker0,相当于一个路由,然后在将docker0 桥接到物理网卡上。

驱动对容器里边的东西进行驱动,IP network interface port

execdriver 执行驱动:主要驱动不容系统里的namespaces和cgroup,最总把这个六个选项启动,开启了一个容器,然后在rootfs里打开一个容器。

 

 

posted @ 2018-04-13 17:06  Leonardo-li  阅读(829)  评论(0编辑  收藏  举报