Docker学习笔记之概念
发布日期:2021-06-22 10:30:55 浏览次数:4 分类:技术文章

本文共 853 字,大约阅读时间需要 2 分钟。

背景

整理一下前一阵子对docker的学习笔记

概述

Docker负责管理镜像和容器,是一种轻量级的虚拟机。

镜像与容器

镜像和容器的关系就相当于类和实例的关系,容器相当于运行在虚拟机上的操作系统,镜像则相当于镜像文件。

Docker执行run命令时,先在本地查询镜像,本机查不到就到hub上去下载,然后以此镜像为模板生产容器实例运行。如下图所示

Docker和虚拟机的区别

1、Docker的抽象层比虚拟机少,没有硬件资源虚拟化,运行在容器上的程序直接使用物理机的硬件资源,故而效率更高。

2、Docker利用物理机的内核,而不是Guest OS,所以新建容器时,Docker不必重新加载一个操作系统内核,直接利用物理机的即可。

两者区别如下图所示(左图左边为虚拟机架构,右边为Docker架构):

联合文件系统

这是一种分层、轻量级并且高性能的文件系统。支持对文件系统的修改作为一次提交来一层层的叠加。

特性:一次加载多个文件系统,但从外面来看只有一个文件系统。联合加载会把各层文件系统叠加起来,高层文件系统会包含所有底层文件系统的目录和文件,这样最终的文件系统会包含所有底层的文件和目录。

联合文件系统是Docker镜像的基础。

Docker镜像加载原理

Docker镜像实际上由一层层文件系统组成,也就是上面的联合文件系统。

最底层的bootfs主要包含bootloader和kernel,bootloader主要负责引导加载kernel。容器启动完成后,内核全部在内存中,系统会卸载bootfs。

第二层的rootfs则为各种OS的发行版,里面包含各种典型的linux系统目录,如/dev、/bin、/etc等。

对于一个精简的OS,rootfs只需要包含最基本的命令、工具和程序库,因为底层直接使用宿主机的kernel,所以不同的inux可以使用公用的bootfs。因此docker中的系统镜像都比较小。

这样做的好处就是共享资源:只加载一个镜像,就可以被所有容器使用,镜像的每一层都可以被共享

转载地址:https://blog.csdn.net/qq_37475168/article/details/105027998 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Docker学习笔记之常用命令
下一篇:JVM学习笔记上(概述-本地方法栈)

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月14日 17时42分00秒