Docker容器文件系统的知识点有哪些

发布时间:2022-05-26 15:26:56 作者:iii
来源:亿速云 阅读:302

这篇文章主要讲解了“Docker容器文件系统的知识点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Docker容器文件系统的知识点有哪些”吧!

docker 容器文件系统

dockerfile是软件的原材料,docker镜像是软件的交付品,而docker容器则可以认为是软件的运行态。从应用软件的角度来看,dockerfile、docker镜像与docker容器分别代表软件的三个不同阶段,dockerfile面向开发,docker镜像成为交付标准,docker容器则涉及部署与运维,三者缺一不可,合力充当docker体系的基石。

docker镜像

docker镜像是dockerfile的产物,是docker容器的前提,大有承前启后之意。docker技术发展两年有余,相信大家很早就听说过docker大多采用联合文件系统(union filesystem),为docker容器提供文件系统服务。

关于docker镜像,有以下特性:

  1. 由dockerfile生成

  2. 呈现层级结构

  3. 每层镜像包含:镜像文件以及镜像json元数据信息

docker容器

docker容器是docker镜像的运行态体现。概括而言,就是在docker镜像之上,运行进程。进程启动的方式有两种,用户即可以选择运行自己另行指定的命令,也可以选择运行docker镜像内部指定的命令。

docker容器的文件系统,可以说大部分由docker镜像来提供。为什么说是大部分呢?其实是有原因的,镜像内容虽多,但依然不是全部。下面,我会带大家看看,docker镜像中有什么,而docker容器的哪些内容不在docker镜像中。

docker容器文件系统

那就让我们一图看尽docker容器的文件系统:

Docker容器文件系统的知识点有哪些

上图从一个较为全面的角度阐述了dockerfiledocker镜像docker容器三者的关系。

dockerfile体现

docker容器已经在运行,但是追本溯源,我们依然可以找到dockerfile的影子。上图中,我们可以发现,docker容器依附docker镜像,而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条命令,则是一个很好的佐证。

from ubuntu:14.04 :设置基础镜像,此时会使用基础镜像ubuntu:14.04的所有镜像层,为简单起见,图中将其作为一个整体展示。

add run.sh /:将dockerfile所在目录的文件run.sh加至镜像的根目录,此时新一层的镜像只有一项内容,即根目录下的run.sh.

volume /data:设定镜像的volume,此volume在容器内部的路径为/data。需要注意的是,此时并未在新一层的镜像中添加任何文件,但更新了镜像的json文件,以便通过此镜像启动容器时获取这方面的信息。

cmd ["./run.sh"]:设置镜像的默认执行入口,此命令同样不会在新建镜像中添加任何文件,仅仅在上一层镜像json文件的基础上更新新建镜像的json文件。docker容器体现

涉及到docker容器,便是动态的内容,一切似乎都有了生命。上文曾提及,docker容器的文件系统中不仅包含docker镜像。此言不虚,图中的顶上两层,就是docker为docker容器新建的内容,而这两层恰恰不属于镜像范畴。

这两层分别为docker容器的初始层(init layer)与可读写层(read-write layer),初始层中大多是初始化容器环境时,与容器相关的环境信息,如容器主机名,主机host信息以及域名服务文件等。

再来看可读写层,这一层的作用非常大,docker的镜像层以及顶上的两层加起来,docker容器内的进程只对可读写层拥有写权限,其他层对进程而言都是只读的(read-only)。如aufs等文件系统下,写下层镜像内容即会涉及cow(copy-on-write)技术。另外,关于volume以及容器的hosts、hostname、resolv.conf文件等都会挂载到这里。需要额外注意的是:虽然docker容器有能力在可读写层看到volume以及hosts文件等内容,但那都仅仅是挂载点,真实内容位于宿主机上。

感谢各位的阅读,以上就是“Docker容器文件系统的知识点有哪些”的内容了,经过本文的学习后,相信大家对Docker容器文件系统的知识点有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

推荐阅读:
  1. Docker容器的常见命令有哪些
  2. docker容器技术有哪些缺点

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

docker

上一篇:Ubuntu Docker安装实例分析

下一篇:Ubuntu16.04怎么实现Docker的CS模式

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》