码迷,mamicode.com
首页 > 其他好文 > 详细

Docker入门之联合文件系统

时间:2020-03-03 14:41:16      阅读:49      评论:0      收藏:0      [点我收藏+]

标签:format   token   ring   元数据   orm   file   设定   package   动态   

Dockerfile、Image、Container

 
技术图片
Dockerfile Image Container 的关系.png
  • Dockerfile: 用于描述镜像的生成规则。 Dockerfile中的每一条命令,都在Docker镜像中以一个独立镜像层的形式存在。
  • Image: 由Dockerfile生成, 呈现层级结构, 每层镜像包含:镜像文件以及镜像json元数据信息。
  • Container: Container 是Image 的动态运行结果,概括而言,就是在Docker镜像之上,运行进程。

Docker 镜像、容器的基石——联合文件系统(UnionFS)

假设Dockerfile 内容如下
FROM ubuntu:14.04
ADD run.sh /
VOLUME /data
CMD ["./run.sh"]
联合文件系统对应的层次结构如下图所示
 
技术图片
Docker 文件系统(图片来源于网络).png
  • 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容器的初始层(Init Layer)与可读写层(Read-Write Layer)。

  • 初始层: 大多是初始化容器环境时,与容器相关的环境信息,如容器主机名,主机host信息以及域名服务文件等。
  • 读写层: Docker容器内的进程只对可读写层拥有写权限,其他层对进程而言都是只读的(Read-Only)。 另外,关于VOLUME以及容器的hosts、hostname、resolv.conf文件等都会挂载到这里。




原创链接:https://www.jianshu.com/p/5ec3d4dbf580

Docker入门之联合文件系统

标签:format   token   ring   元数据   orm   file   设定   package   动态   

原文地址:https://www.cnblogs.com/wenm1128/p/12402005.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!