写点什么

Docker 镜像超详细介绍

  • 2022 年 4 月 21 日
  • 本文字数:1208 字

    阅读完需:约 4 分钟

docker 的镜像实际上由一层一层的文件系统组成,这种层级的文件系统 UnionFS。


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


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


[](()1.3 分层的镜像




其实我们前面在 pull 文件的时候比如 tomcat,在 pull 界面 《一线大厂 Java 面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》开源 我们就可以看到下载的文件是一层层的。



[](()1.4 分层结构的特点




其实我们也会考虑 docker 为什么会才用这种分层的结果,它有什么好处呢?最大的一个好处就是共享资源


比如:有多个镜像都从相同的 base 镜像构建而来,那么宿主机只需在磁盘上保存一份 base 镜像,同时内存中也只需加载一份 base 镜像,就可以为所有容器服务了。而且镜像的每一层都可以被共享


[](()2. 镜 Java 开源项目【ali1024.coding.net/public/P7/Java/git】 像的特点


========================================================================


大家需要注意,docker 镜像都是只读的,当容器启动时,一个新的可写层被加载到镜像的顶部,这一层通常被称为容器层,容器层之下的都叫镜像层


[](()3. 镜像的操作


========================================================================


我们现在已经掌握了从docker hub上获取相关镜像,然后运行容器,并作出我们自己的处理,但有时候我们需要将我们自己的容器制作为对应的镜像,以便后面继续使用,这时我们就需要用到docker commit ...命令了,这节我们就通过案例来介绍下 docker commit ...命令的使用


docker commit -m="要提交的描述信息" -a="作者" 容器 ID 要创建的目标镜像名:[标签名]


[](()操作案例




我们通过tomcat镜像来创建容器后操作处理,然后将容器制作为新的镜像然后我们通过新的镜像来制作容器来演示这个效果,有点绕,我们直接通过案例来说。

[](()3.1 下载 tomcat 镜像

docker pull tomcat



创建tomcat容器并运行


docker run -it -p 8888:8080 tomcat


参数说明


| 参数 | 说明 |


| --- | :-- |


| -p | 主机端口:docker 容器端口 |


| -P | 随机分配端口 |


| -i | 交互 |


| -t | 终端 |



访问服务


[](()3.2 删除 doc

最后

针对最近很多人都在面试,我这边也整理了相当多的面试专题资料,也有其他大厂的面经。希望可以帮助到大家。



上述的面试题答案都整理成文档笔记。 也还整理了一些面试资料 &最新 2021 收集的一些大厂的面试真题(都整理成文档,小部分截图)



以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

用户头像

还未添加个人签名 2022.04.13 加入

还未添加个人简介

评论

发布
暂无评论
Docker镜像超详细介绍_Java_爱好编程进阶_InfoQ写作社区