美文网首页BATJ架构
Docker入门介绍--基础技术(二)

Docker入门介绍--基础技术(二)

作者: 裘马轻狂大帅 | 来源:发表于2019-05-11 06:47 被阅读9次

基础技术

Docker是用Go编写的,它利用Linux内核的几个功能来提供其功能。

命名空间

Docker使用一种被称为namespaces提供隔离工作空间的技术来称为容器。运行容器时,Docker会为该容器创建一组 名称空间。

这些命名空间提供了一层隔离。容器的每个方面都在一个单独的命名空间中运行,其访问权限仅限于该命名空间。

Docker Engine在Linux上使用以下命名空间:

pid命名空间:进程隔离(PID:进程ID)。

net命名空间:管理网络接口(NET:网络)。

ipc命名空间:管理访问IPC资源(IPC:进程间通信)。

mnt命名空间:管理文件系统挂载点(MNT:摩)。

uts命名空间:隔离内核和版本标识符。(悉尼科技大学:Unix分时系统)。

对照组

Linux上的Docker Engine还依赖于另一种称为控制组 (cgroups)的技术。cgroup将应用程序限制为特定的资源集。控制组允许Docker Engine将可用的硬件资源共享给容器,并可选择强制执行限制和约束。例如,您可以限制特定容器的可用内存。

联盟文件系统

联合文件系统或UnionFS是通过创建层来操作的文件系统,使它们非常轻量和快速。Docker Engine使用UnionFS为容器提供构建块。Docker Engine可以使用多种UnionFS变体,包括AUFS,btrfs,vfs和DeviceMapper。

容器格式

Docker Engine将命名空间,控制组和UnionFS组合成一个称为容器格式的包装器。默认容器格式是libcontainer。将来,Docker可以通过与BSD Jails或Solaris Zones等技术集成来支持其他容器格式。

相关文章

网友评论

    本文标题:Docker入门介绍--基础技术(二)

    本文链接:https://www.haomeiwen.com/subject/ziytaqtx.html