当前位置: 首页 > Linux

Docker镜像

时间:2023-04-06 20:21:45 Linux

1。什么是Docker镜像?1)什么是镜像:镜像是一个轻量级的、可执行的、独立的软件包,用于封装软件运行环境和基于运行环境开发的软件。它包括运行一个软件所需的一切,包括代码、运行时、库、环境变量和配置文件。2)、UnionFS(联合文件系统):联合文件系统(UnionFS)是一个分层的、轻量级、高性能的文件系统,它支持对文件系统的修改作为逐层递交,同时可以挂载不同的目录到同一个虚拟文件系统(将几个目录合并到一个虚拟文件系统中)。Union文件系统是Docker镜像的基础。图像可以通过层来继承。基于基础镜像(没有父镜像),可以制作各种特定的应用镜像。特点:同时加载多个文件系统,但从外面看,只能看到一个文件系统,联合加载会将所有层文件系统叠加,这样最终的文件系统将包含所有底层文件和目录3),Docker镜像加载原理:docker的镜像实际上是由一层一层的文件系统组成的,这一层文件系统UnionFS。bootfs(引导文件系统)主要包括bootloader和kernel。引导加载程序主要用于引导加载内核。当Linux启动时,它会加载bootfs文件系统。Docker镜像的底层是bootfs。这一层和我们典型的Linux/Unix系统是一样的,包括bootloader和kernel。当引导加载时,整个内核都在内存中。这时候内存的使用权已经从bootfs转移到了内核。这时系统也会卸载bootfs。rootfs(根文件系统),位于bootfs之上。它包含标准目录和文件,例如典型Linux系统中的/dev、/proc、/bin、/etc。Rootfs是各种不同的操作系统发行版,如Ubuntu、Centos等。通常我们安装到虚拟机中的CentOS有好几个G,为什么这里的Docker只有200M??对于一个精简的OS来说,rootfs可以很小,只需要包括最基本的命令、工具和程序库。因为底层直接使用宿主机的内核,所以只需要提供rootfs即可。可以看出,对于不同的Linux发行版,bootfs基本相同,但是rootfs会有所不同,所以不同的发行版可以共享bootfs。4)分层镜像以我们的拉取为例。在下载的过程中,我们可以看到docker镜像好像是在一层一层的下载。5)Docker镜像为什么要采用这种分层结构?好处之一是——共享资源。例如:如果多个镜像是从同一个基础镜像构建的,那么主机只需要在磁盘上保存一个基础镜像,而只需要在内存中加载一个基础镜像。准备服务所有容器。并且图像的每一层都可以共享。2.特点1)、Docker镜像是只读的2)、当容器启动时,在镜像之上加载一个新的可写层。3)这一层通常被称为“容器层”,“容器层”以下的一切都被称为“镜像层”。3、dockerimagecommit操作1)、dockercommit提交容器副本使其成为新镜像2)、dockercommit-m="commit描述信息"-a="author"容器ID待创建的目标镜像名称:[标签名]例如:dockercommit-a="lisi"-m="tomcatmakeMirroremyself"tomcatmyself/tomcat01:1.0本文作者:魂浩轩欢迎关注公众号本人保留所有权益,转载请注明出处。有故事有想法的朋友欢迎和我分享,也可以发到邮箱:lwqforit@163.com