【四】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容器。

 

posted @ 2019-11-23 14:32  做一只热爱生活的小透明  阅读(120)  评论(0)    收藏  举报