【四】docker底层技术
一、底层技术
docker守护进程通过一个“执行驱动程序”来创建容器,默认情况下,它是docker项目自行开发的runc驱动程序,但仍旧支持旧的LXC,runc与下面的两个密不可分:
cgroups:负责管理容器使用的资源(如CPU与内存的使用),还负责冻结和解冻容器这两个docker pause命令所需要的功能
NameSpaces(命名空间):负责容器之间的隔离,确保系统的其他部分与容器文件系统,主机名,用户,网络和进程都是分开的。
二、周边技术
docker引擎和Docker Hub并不足以构成一套完整的容器方案,发部分还需要一些职称服务于软件,诸如集群管理,服务发现工具和更先进的联网功能,以下是docker目前提供的辅助技术:
Swarm:
docker的集群方案
Compose:
docker compose是负责构建和运行由多个Docker容器组成的应用程序工具,主要用于开发和测试
Machine:
Docker Machine是可以在本地和远程资源上安装和配置Docker主机,Machine还能配置Docker客户端,使用户轻松在不同环境之间切换
kitematic:
kitematic是一个Mac OS和Windows上的GUI,用户运行和管理Docker容器
Docker Trusted Registry:
Docker的一个企业内部方案,用于存储和管理docker镜像,实际上是个Docker Hub的本地版本.
基于大量或配合Docker使用的第三方服务和应用,下面列出在不同领域之间出现的一些解决方案:
网络连接:
不同主机上的容器连接起来,解决方案:也将实现一个集成的联网方案,名为Overlay
服务发现:
当Docker容器启动时,他需要通过某种方法来找出与之通信的服务,而这些服务一般也是运行在容器内,容器的IP是动态分配的,解决起来有点难度。解决方案:Registrator,Consul
服务编排及集群管理
对于每个新的容器,都需要安排把它放置在哪台主机上,并对它实施监控和保持更新,系统需要对故障的出现和负载的改变做出反应,实际情况下可能是搬迁。启动或停止容器,这方面也有解决方案:Kubernetes以及Docker自家的框架Swarm
三、托管技术
很多传统的云服务供应商,包括亚马逊,谷歌,和Digital Ocean,都已经在某种程度上提供了docker服务,谷歌的Container Engine可能是最有趣的一个,因为他是直接在Kubernetes上构造的。如果云服务不提供专门的docker技术支持,一般也可以部署虚拟机,并在其上运行docker容器。

浙公网安备 33010602011771号