Docker核心技术详解

 一、容器概述

容器可以通过操作系统级虚拟化技术提供轻量级虚拟化,为此需要利用Linux内核的一些内置功能,如Chroot、AppArmor等。

其中两项重要的功能就是命名空间隔离(Namespace Isolation)与控制组(Control-Group)功能,因而有些人也将容器或LXC简单地视为这两种内核功能的组合。

1、命名空间隔离

Linux内核实现的命名空间隔离(或简称为命名空间)功能是为了限制进程使用的某些资源的可见性,而且不允许使用相互隔离的命名空间的进程查看彼此的资源。

例如,某应用程序(运行为Linux内核下的一个进程且使用自己的进程命名空间)可以在自己的命名空间中生成多个进程,这些进程及进程ID对于其他未使用相同命名空间的应用程序来说是不可见的。

与此类似,可以创建网络命名空间(通常称为Netns)并将其分配给应用程序,使得进程维护自己的路由及网络协议栈副本。因而在使用特定网络命名空间的应用程序中创建的接口或路由,对于同一主机上的其他应用程序不可见(如果这些应用程序未共享该网络命名空间)。

命名空间隔离功能是为少数Linux内核资源实现的,虽然提出了很多类型的命名空间隔离功能,但目前Linux内核仅实现了其中的6种。

下表给出了这6种命名空间的简要信息,这里列出这些信息的目的是希望从高层视角来展现命名空间功能实现的隔离类型。

Linux命名空间:

2、控制组

使用命名空间的目

你可能感兴趣的:(Docker,K8s,云原生,CICD,DevOps,docker)