在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
Docker 容器文件系统
Docker镜像 Docker镜像是Dockerfile的产物,是Docker容器的前提,大有承前启后之意。Docker技术发展两年有余,相信大家很早就听说过Docker大多采用 关于Docker镜像,有以下特性:
Docker容器 Docker容器是Docker镜像的运行态体现。概括而言,就是在Docker镜像之上,运行进程。进程启动的方式有两种,用户即可以选择运行自己另行指定的命令,也可以选择运行Docker镜像内部指定的命令。 Docker容器的文件系统,可以说大部分由Docker镜像来提供。为什么说是大部分呢?其实是有原因的,镜像内容虽多,但依然不是全部。下面,我会带大家看看,Docker镜像中有什么,而Docker容器的哪些内容不在Docker镜像中。 Docker容器文件系统 那就让我们一图看尽Docker容器的文件系统: 上图从一个较为全面的角度阐述了 Dockerfile体现 Docker容器已经在运行,但是追本溯源,我们依然可以找到Dockerfile的影子。上图中,我们可以发现, FROM ubuntu:14.04 ADD run.sh / VOLUME /data CMD ["./run.sh"] 我们可以看到,以上Dockerfile中的每一条命令,都在Docker镜像中以一个独立镜像层的形式存在。 Docker镜像体现 毫无疑问,Docker镜像是由Dockerfile构建而成,我们也可以看到图中下4层被标记为Docker镜像。作为Docker技术的核心,我们必须了解Docker如何构建镜像,以及Docker镜像构建之后的产物是什么。 初次接触Docker,了解层级管理的Docker镜像之后,很容易就认为:每一层Docker镜像中都含有相应的文件系统文件。其实不然,以上Dockerfile中的4条命令,则是一个很好的佐证。
涉及到Docker容器,便是动态的内容,一切似乎都有了生命。上文曾提及,Docker容器的文件系统中不仅包含Docker镜像。此言不虚,图中的顶上两层,就是Docker为Docker容器新建的内容,而这两层恰恰不属于镜像范畴。 这两层分别为Docker容器的初始层( 再来看可读写层,这一层的作用非常大,Docker的镜像层以及顶上的两层加起来,Docker容器内的进程只对可读写层拥有写权限,其他层对进程而言都是只读的( 总结 Docker镜像属静态,Docker容器属动态,两者之间有着千丝万缕的关系。从Docker容器文件系统的角度来认识两者,我相信会对大家有很大的帮助。 Docker镜像以及Docker容器文件系统,绝对是非常细致的内容,基于这些概念,实在有太多有意思的话题可以展开,本系列后续会有以下多篇文章来分析: 1.深刻理解Docker镜像大小 2.其实docker commit很简单 3.不得不说的docker save与docker export区别 4.为什么有些容器文件动不得 5.打破MNT Namespace的容器VOLUME 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持! |
请发表评论