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 从逻辑上组织容器、定义容器池、负载均衡