首页 > 其他分享 >Docker 学习笔记 - 3

Docker 学习笔记 - 3

时间:2024-01-16 18:14:16浏览次数:35  
标签:tomcat 文件系统 笔记 bootfs 学习 镜像 Docker docker 加载

Docker镜像

1. 联合文件系统(UnionFS)
UnionFS是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下,UnionFS是docker镜像的基础,镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。

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

2. docker镜像加载原理
docker的镜像实际上是由一层层的文件系统组成,这种层级的文件系统就是UnionFS

bootfs(boot文件系统)主要包含bootloader和kernel,bootloader主要是引导加载kernel,Linux刚启动的时候会加载bootfs文件系统,在docker镜像的最底层是bootfs。这一层与Linux系统该是一样的,包含boot加载器和内核。当boot加载完成后整个内核就都在内存中了,此时内存的使用权已由bootfs转交给内核,此时系统也会卸载bootfs。

rootfs(root文件系统),在bootfs之上,包含的是典型Linux系统中的/dev,/proc,/bin,/etc等标准目录和文件。rootfs就是各种不同的操作系统该发行版,如Ubuntu、CentOS等。

对于一个精简的OS,rootfs可以很小,只需要包括最基本的命令、工具和程序库就可以了,因为底层直接用Host的kernel,自己只需要提供rootfs就行了。所以对于不同的Linux发行版,bootfs基本是一致的,rootfs会有差别,因此不同的发行版可以共用bootfs。

3. 镜像的特点和优点
(1) 镜像的特点
docker镜像都是只读的,当容器启动时,一个新的可写层被加载到镜像的顶部,这一层通常被称作“容器层”,“容器层”之下的为“镜像层”。

(2) 分层镜像的优点
使用分层镜像的优点是可以共享资源,比如有多个镜像都从相同的base镜像构建而来,那么宿主机上只需要保存一份base镜像,内存中也只需要加载一份base镜像,就可以为所有容器服务了。镜像的每一层都可以被共享。 以pull为例,在下载的过程中可以看到docker的镜像好像是在一层一层的在下载。

4. 镜像提交
(1) commit命令
docker commit -m="提交的描述信息" -a="作者" 容器名 要创建的目标镜像名:[TAG]:提交容器副本使之成为一个新的镜像
(2) 镜像提交实例
docker run -it -p 8080:8080 tomcat:从hub上下载tomcat镜像到本地并运行

 故意删除上一步镜像生产tomcat容器的文档

 docker commit -a="zuzhiang" -m="del tomcat docs" 容器名 atguigu/tomcat/02:1.2:以它为模板提交一个没有文档的tomcat新镜像atguigu/tomcat02

 

docker run -it -p 7777:8080 atguigu/tomcat02:1.2:启动新镜像并访问localhost:7777/docs界面,可以发现与原镜像相比无文档

 

 

标签:tomcat,文件系统,笔记,bootfs,学习,镜像,Docker,docker,加载
From: https://www.cnblogs.com/otf-notes/p/17968224

相关文章

  • AdaMCL: Adaptive Fusion Multi-View Contrastive Learning for Collaborative Filter
    AdaMCL:AdaptiveFusionMulti-ViewContrastiveLearningforCollaborativeFilteringAbstract​ 大多数基于CL的方法只利用原始的用户-项目交互图来构造CL任务,缺乏对高阶信息的显示利用。而且即使是使用高阶信息的基于CL的方法,高阶信息的接收字段也是固定的,没有考虑到节点之......
  • 机器学习中准确度(accuracy)和精确度(precision)的区别
    准确率(accuracy)是指模型正确预测的样本数与总样本数之比。它衡量了模型对所有样本的分类准确程度。准确率计算公式如下:准确率=(真阳性+真阴性)/(真阳性+假阳性+真阴性+假阴性)精确度(precision)是指模型在预测为正例的样本中,真正例的比例。它衡量了模型在预测为正例的......
  • 多线程(Java.Thread)学习(完结)
    多线程(Java.Thread)学习线程简介:1、线程是独立执行的路径2、程序运行时有很多后台进程比如主线程、young.gc、full.gc()3、main是主线程,系统入口,用于执行整个程序4、一个进程中、如果开辟多个线程,线程的运行由调度器安排调度、调度器的先后顺序不能人为干预5、对同一份资......
  • docker 操作手册(三)镜像打包
    保存镜像dockerimagesave--helpSaveimage(s)toanarchiveDescription:Saveanimagetodocker-archiveoroci-archiveonthelocalmachine.Defaultisdocker-archive.Usage:dockerimagesave[options]IMAGE[IMAGE...]Examples:podmanimagesave......
  • 【论文笔记#2】Farseg++:用于高空间分辨率遥感图像地理空间对象分割的前景感知关系网络
    论文来源IEEETransactionsonPatternAnalysisandMachineIntelligence作者ZhuoZheng;YanfeiZhong;JunjueWang等发表年代2023使用方法多分支金字塔编码、前景-场景关系、前景感知解码、前景感知优化期刊层次CCFA;计算机科学1区;IF23.6原文链接......
  • C语言学习随笔-11 作用域
     作用域:作用域是程序中定义的变量所存放的区域,超过该区域就不能被访问 C语言中有三个地方可以声明变量: - 在函数或块内部的局部变量。 - 在所有函数外部的全局变量。 - 在形式参数的函数参数定义中。1、局部变量intmain局部变量(){/*1、局部变量......
  • 2024.1.16-每日进度笔记
    今天,尝试在jsp中上传图片并进行预览,同时将上传的图片等比例缩小到预览区域内。 参考:百度文心一言的回复。 <%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPEhtml><html><head><metacharset=&qu......
  • [spring] spring学习笔记(2): 通过xml实现依赖注入 - 特殊注入类型
    实际应用中,我们的对象可能会引用很多不同类型的东西,不单单只是几个数值对象类型在前一篇文章中,已经使用引用对象作为例子,关键在于使用ref<!--注意引用的对象要先创建Bean,id为weapon1--><beanid="player1"class="com.demo.player"> <!--通过setter注入,注意ref的......
  • Linux 学习资料
    目录Linux工具快速教程鸟哥的Linux私房菜Linux就该这么学Linux工具快速教程链接鸟哥的Linux私房菜链接1链接2Linux就该这么学链接......
  • docker - 将几个目录复制到另一个目录
    您如何将多个目录复制到Docker中的目标目录?我不想复制目录内容,而是复制整个目录结构。COPY和ADD命令复制目录内容,展平结构,这是我不想要的。也就是说,如果这些是我的来源:.├──a│  ├──aaa.txt│  └──uuu.txt├──b│  ├──ooo.txt│  └──p......