Docker的总架构图

Docker对使用者来讲是一个C/S模式的架构,Docker Client与Docker Daemon建立通信,Docker Daemon作为Docker架构中的主体部分,首先提供Server的功能使其可以接受Docker Client的请求;而后Engine执行Docker内部的一系列工作,每一项工作都是以一个Job的形式的存在。


三大驱动:

graphdriver:当需要容器镜像时,graphdriver将下载镜像以Graph的形式存储

networkdriver:networkdriver创建并配置Docker容器网络环境

execdriver:当需要限制Docker容器运行资源或执行用户指令等操作


libcontainer:

Docker架构中一个使用Go语言设计实现的库,直接访问内核中与容器相关的API.Docker可以直接调用libcontainer,而最终操纵容器的namespace、cgroups、apparmor、网络设备以及防火墙规则等。这一系列操作的完成都不需要依赖LXC或者其他包。


kubernetes:

管理Linux容器集群,并可将集群作为一个单一的系统来对待。

解决问题:1 跨多个Docker主机扩展和启动容器  2 从逻辑上组织容器、定义容器池、负载均衡