docker轻量,一次封装到处运行,启动快,以是很适合做扩缩容、微服务。 一、隔离[code]vmware[/code]利用[code]supervisor[/code]模拟出硬件,然后在其之上安装完备的一套操纵系统,这套完备的操纵系统跑在宿主机操纵系统之上,被宿主机操纵系统调度,以是较为重量。 而[code]docker[/code]复用宿主机操纵系统的内核,作为平凡历程调用,利用[code]linux[/code]提供的[code]namespace[/code]隔离技术来实现捏造化,是一种轻量级捏造化技术。[code]namespace[/code]表现一个标识符的可见范围,各namespace互不相干,以是标识符能够恣意界说而不冲突。 linux提供6种namespace:UTS(主机名)、User、Mount(文件系统)、Net、IPC、Pid。有了这几种名称空间,会让历程自身以为跑在一台独立的操纵系统上,这是操纵系统的欺骗性。 [code]docker[/code]轻量,一次封装到处运行,启动快,以是很适合做扩缩容、微服务。 二、网络[code]docker[/code]默认会利用bridge网络模子,即容器中的有veth的一端,另一端veth连接到[code]bridge[/code]网桥上,网桥连接宿主机网络,利用NAT来实现和外部通讯。veth的原理是这样,通常成对出现,发送给veth一端的包可以被另一端吸收到。 [code]docker[/code]另有其他几种模子,比如没net,容器中只有环回网络loopback。团结net,多个容器利用相同的veth。hostnet,容器直接利用宿主机网络。 三、镜像镜像是一个可实行的软件包,包罗运行应用程序所需的统统。 [code]docker[/code]的镜像利用分层布局,就是所谓的“分层存储,团结挂载”。 最下面一层是bootfs,包罗[code]bootloader[/code]。再往上是根系统镜像层,再往上是各种镜像层,除了最上层是可读写之外,别的层均为只读层。以是,如果在顶层镜像有对下层镜像数据做修改的话,该数据会COW(copy on write)复制到顶层进行,然后再进行修改。以是,可想而知,这种团结挂载文件系统的效率不是很高,以是在利用中会用到volume,卷,即离开于分层存储的存储。 到此这篇关于 一文带你了解Docker背后的原理的文章就介绍到这了,更多相关Docker背后的原理内容请搜刮脚本之家从前的文章或继承欣赏下面的相关文章,渴望大家以后多多支持脚本之家! 来源:https://www.jb51.net/LINUXjishu/812894.html 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |
|手机版|小黑屋|梦想之都-俊月星空
( 粤ICP备18056059号 )|网站地图
GMT+8, 2025-7-1 19:00 , Processed in 0.069450 second(s), 27 queries .
Powered by Mxzdjyxk! X3.5
© 2001-2025 Discuz! Team.