• 技术文章 >运维 >Docker

    docker编译的镜像放在哪个目录

    青灯夜游青灯夜游2022-05-11 12:14:28原创271

    镜像放在docker根目录下。镜像层内容一般在Docker目录的aufs路径中,具体地址“/var/lib/docker/aufs/”;对于每一个镜像层,都会保存一份相应的json文件,路径为“/var/lib/docker/graph”。

    本教程操作环境:Ubuntu 14.04系统、docker-1.7.1版、Dell G3电脑。

    Docker 镜像内容


    对于 Docker 镜像的认识总会有第一次,自那时开始,当然也少不了成长,笔者本人的认识过程不妨和大家一起分享:

    另外,在上述第三个步骤中,还有一种情况,相信大家并不陌生,很多个镜像层大小为 0,镜像层内部不存在任何文件内容。这又是怎么一回事?

    大家可以回忆一下《Docker镜像详谈(1): 容器的文件系统》中,关于空镜像的生成部分,其中提到「更新镜像的 json 文件」。其实,前文埋下的伏笔,即暗示了真相—— Docker 镜像内容由镜像层文件内容和镜像 json 文件组成,不论静态内容还是动态信息,Docker 均为将其在 json 文件中更新。

    Docker 每一层镜像的 json 文件,都扮演着一个非常重要的角色,其主要的作用如下:

    Docker 镜像的 json 文件可以认为是镜像的元数据信息,其重要性不言而喻。

    Docker 镜像存储位置


    Docker 镜像内容的理论分析,看着多少有些云里雾里,不论 Docker 镜像层的文件,还是 json 文件,读来都稍显乏味。倘若可以一窥 Docker 中的真实环境,相信对于镜像技术的理解定会有不少的帮助。

    我们直奔主题,从 Docker 镜像的存储入手,看看这些镜像层文件内容与镜像 json 文件分别存储于何处。(以下展示的实验环境:宿主机操作系统为 Ubuntu 14.04、Docker 版本为 1.7.1、graphdriver 类型为 aufs,仅包含 ubuntu:14.04 一个镜像。)

    查看镜像层组成

    我们可以通过命令 docker history ubuntu:14.04 查看 ubuntu:14.04,结果如下:

    1.png

    图中显示 ubuntu:14.04 镜像共有 4 个镜像层。

    镜像层文件内容存储

    Docker 镜像层的内容一般在 Docker 根目录的 aufs 路径下,为 /var/lib/docker/aufs/,具体情况如下:

    2.png

    图中显示了镜像 ubuntu:14.04 的 4 个镜像层内容,以及每个镜像层内的一级目录情况。需要额外注意的是,镜像层 d2a0ecffe6fa 中没有任何内容。

    镜像 json 文件存储

    对于每一个镜像层,Docker 都会保存一份相应的 json 文件,json 文件的存储路径为 /var/lib/docker/graph,ubuntu:14.04 所有镜像层的 json 文件存储路径展示如下:

    3.png

    除了 json 文件,大家还看到每一个镜像层还包含一个 layersize 文件,该文件主要记录镜像层内部文件内容的总大小。既然谈到了镜像 json 文件,为了给下文铺垫,以下贴出 ubuntu:14.04 中空镜像层 d2a0ecffe6fa 的 json 文件:

    4.png

    由于该镜像层的对应的 Dockerfile 指令为 CMD,所以镜像层的内容为空,而改镜像层的 json 文件会更新 Cmd 域,获取新的 Cmd 值,以便后续通过该镜像运行容器时,使用更新后的 Cmd。

    推荐学习:《docker视频教程

    以上就是docker编译的镜像放在哪个目录的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:Docker
    上一篇:docker支持使用yum安装吗 下一篇:docker核心技术是哪两个
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【腾讯云】年中优惠,「专享618元」优惠券!• docker中什么是宿主机• docker volume和挂载的区别是什么• 什么是docker集群与镜像• docker容器化是什么意思• docker的映射是什么
    1/1

    PHP中文网