这篇文章将为大家详细讲解有关Docker的底层实现所依赖的关键技术是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
成都创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站制作、成都网站制作、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的雨湖网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
底层技术
Docker是用Go编写的,它利用了几个Linux内核特性来提供我们所看到的功能。
名称空间
Docker利用一种称为名称空间的技术来提供我们称之为容器的隔离工作空间。运行容器时,Docker会为该容器创建一组名称空间。
这提供了一个隔离层:容器的每个方面都在其自己的名称空间中运行,并且在其外部没有访问权限。
Docker使用的一些名称空间包括:
pid命名空间:用于进程隔离(pid:进程ID)。
网络名称空间:用于管理网络接口(网络:网络)。
ipc名称空间:用于管理对ipc资源的访问(ipc:进程间通信)。
mnt命名空间:用于管理装入点(mnt:mount)。
uts名称空间:用于隔离内核和版本标识符。(UTS:Unix分时系统)。
对照组
Docker还使用了另一种称为cgroups或control Group的技术。隔离运行应用程序的关键是让它们只使用您想要的资源。这确保了容器是主机上良好的多租户公民。控制组允许Docker将可用硬件资源共享给容器,并在需要时设置限制和约束。例如,限制特定容器的可用内存。
联合文件系统
Union文件系统,或UnionFS,是通过创建层来操作的文件系统,使它们非常轻量级和快速。Docker使用union文件系统为容器提供构建块。Docker可以使用多种union文件系统变体,包括:AUFS、btrfs、vfs和DeviceMapper。
容器格式
Docker将这些组件组合成我们称之为容器格式的包装器。默认的容器格式称为libcontainer。Docker还支持使用LXC的传统Linux容器。将来,Docker可能支持其他容器格式,例如,通过与BSD监狱或Solaris区域集成。
关于Docker的底层实现所依赖的关键技术是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
网站题目:Docker的底层实现所依赖的关键技术是什么
本文来源:http://scpingwu.com/article/iicjph.html