Docker镜像原理

网友投稿 247 2022-10-23

Docker镜像原理

上一篇文章写到了安装及基础,这篇是深入的了解一下镜像。比如:镜像是什么,Docker加载镜像的原理等等。。。本人基本都已白话文来书写,方便理解!!!

Docker镜像讲解

镜像是什么

镜像是一种轻量级、可执行的独立软件包,用来打包运行环境和基于运行环境开发的软件,它包含运行某个软件所需要的所有内容,包括代码、运行时、库、环境变量和配置文件。所有应用,直接打包docker镜像,就可以直接跑起来。.

镜像加载的原理

UnionFS(联合文件系统)UnionFS 联合文件系统:Union文件系统(UnionFS)是一种分层,轻量级并且高性能文件系统,它支持对文件的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下。Union文件系统是docker镜像的基础。镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作具体的应用镜像。\特性:一次同时加载多个文件系统,但从表面看起来,只能看到一个文件系统,联合加载会把各层文件系统叠加起来,这样最终的文件下系统会包含所有底层的文件和目录。\如何得到镜像

从远程仓库下载 拷贝 自己制作一个镜像,DockerFile. Docker镜像加载原理 docker镜像实际上由一层一层文件系统组成,这种层级的文件系统UnionFS。

bootfs(boot file system)主要包含bootloader和kernel,bootloader主要是引导加载镜像kernel,Linux刚启动时回家再bootfs文件系统,在Docker镜像的最底层是bootfs。这一层与我们典型的Linux/unix系统是一样的,包含boot加载器和内核。当boot加载完之后整个内核就都在内存中了,此时的内存权用权已由bootfs转交给内核,此时系统也会卸载bootfs。

分层理解

分层的镜像

[root@localhost ~]# docker image inspect redis:latest "RootFS": { "Type": "layers", "Layers": [ "sha256:cb42413394c4059335228c137fe884ff3ab8946a014014309676c25e3ac86864", "sha256:8e14cb7841faede6e42ab797f915c329c22f3b39026f8338c4c75de26e5d4e82", "sha256:1450b8f0019c829e638ab5c1f3c2674d117517669e41dd2d0409a668e0807e96", "sha256:f927192cc30cb53065dc266f78ff12dc06651d6eb84088e82be2d98ac47d42a0", "sha256:a24a292d018421783c491bc72f6601908cb844b17427bac92f0a22f5fd809665", "sha256:3480f9cdd491225670e9899786128ffe47054b0a5d54c48f6b10623d2f340632" ] }, "Metadata": { "LastTagTime": "0001-01-01T00:00:00Z" } } ]

理解

特点

注释:比如说tomcat有6层。pull下来就下载6层,run之后,会有一个镜像层tomcat,和容器曾层,你所有的操作都是在容器层上的,操作之后的容器,可以打包成一个新的基础镜像,比如张三想把自己操作之后的镜像发给李四,那么就要打包成一个基础镜像发给李四。\\\\.

如何上传镜像

提交commit

docker commit 提交容器成为一个新的副本 #命令原理与git类似 docker commit -m="提交的描述信息" -a="作者" 容器id 目标镜像名称 {tag} . 1.启动一个初始的tomcat 2.tomcat下webapps是空的,没有app,镜像原因,官方的镜像默认webapps下面是没有文件的。 3.自己拷贝基本文件进去 4.将操作过的容器commit为一个镜像,以后就可以使用修改过的镜像即可

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:SpringBoot解析yml全流程详解
下一篇:RGMII接口信号和帧格式_RGMII接口应用框图
相关文章

 发表评论

暂时没有评论,来抢沙发吧~