java学科之Docker使用的底层技术有哪些?

Docker使用了一系列的底层技术来充分发挥其技术特色,这些底层技术包括有Namespaces、Control groups、Union file systems和Container format等,其具体含义如下。

 

1. Namespaces(名称空间)

Docker使用名称空间来为容器提供隔离的工作空间。当一个容器运行时,Docker就会为该容器创建一系列的名称空间,并为名称空间提供一层隔离。每一个容器都运行在相对隔离的环境下,对其他名称空间是相对受限的。

 

java学科之Docker使用的底层技术有哪些?_第1张图片


2. Control groups(控制组)

基于Linux系统的Docker引擎也依赖于另一项叫做Control groups(cgroups,控制组)的技术。控制组可以对程序进行资源限定,并允许Docker引擎在容器间进行硬件资源共享以及随时进行限制和约束,例如,开发者可以限制某特定容器的可用内存。

 

3. Union file systems(联合文件系统)

联合文件系统(UnionFS)是一种分层、轻量级并且高性能的文件系统,它支持将文件系统的修改作为一次提交来一层层地叠加,同时可以将不同目录挂载到同一个虚拟文件系统下。不同Docker 容器可以共享一些基础的文件系统层,与自己独有的改动层一起使用,可以大大地提高存储效率。Docker目前支持的联合文件系统包括AUFS、btrfs、 vfs 和 DeviceMapper。

 

4. Container format(容器格式)

Docker 引擎将名称空间、控制组和联合文件系统组合成一个叫做容器格式的整体。当前默认的容器格式是libcontainer,未来Docker可能会通过与其他技术(如BSD Jails或者Solaris Zones)的集成使用来开发其他的容器格式。

以上是对Docker知识的介绍,后期还会持续更新,更多Java知识,欢迎关注。

 

你可能感兴趣的:(java学科之Docker使用的底层技术有哪些?)