• 如何确定一个docker镜像,到底有几层?


    如何确定一个docker镜像,到底有几层

    看到这个问题,你是不是觉得太弱智了,查看docker镜像有几层,太简单了。

     

    直接docker history查看不就得了,显示几行就是几层。你确定你说的对吗

     

    看完这个文章,你或许会认识到,其实你错了。

     

    为了完成这个例子,我们做以下的实验:

     

    首先,清空本地环境的所有的镜像

     

    然后,下载一个ubuntu的镜像

     

    [root@centos7 overlay2]# docker pull ubuntu
    Using default tag: latest
    latest: Pulling from library/ubuntu
    d19f32bd9e41: Pull complete 
    Digest: sha256:34fea4f31bf187bc915536831fd0afc9d214755bf700b5cdb1336c82516d154e
    Status: Downloaded newer image for ubuntu:latest
    docker.io/library/ubuntu:latest

     

    如果我们从pull的过程来看,应该是只有一层。

     

    但是,通过docker history命令看下:

    [root@centos7 overlay2]# docker history ubuntu:latest
    IMAGE          CREATED       CREATED BY                                      SIZE      COMMENT
    df5de72bdb3b   13 days ago   /bin/sh -c #(nop)  CMD ["bash"]                 0B        
    <missing>      13 days ago   /bin/sh -c #(nop) ADD file:396eeb65c8d737180…   77.8MB 

    发现是2行,那到底是一层,还是两层呢?

     

    为了弄清楚这个问题,咱们往根上扒,镜像层在主机文件系统上是以目录存在的,我们看下目录:

     

    [root@centos7 l]# cd /var/lib/docker/overlay2/
    [root@centos7 overlay2]# ls
    335aec3532f647ff437a218ba273f1aefd75a5bd99e36c1d64de75a15d6f1a61  backingFsBlockDev  l
    [root@centos7 overlay2]# 

     

    通过上面的图,我们看到,其实只有1层,l(小写的L)是目录的软链接

     

    [root@centos7 overlay2]# ls -l l
    total 0
    lrwxrwxrwx. 1 root root 72 Aug 15 02:28 NK4TJSR3C4QKL4N4AQLKMSM6KG -> ../335aec3532f647ff437a218ba273f1aefd75a5bd99e36c1d64de75a15d6f1a61/diff
    [root@centos7 overlay2]# 

     

    OK,到了这里,是不是你的过去的思维被颠覆了呢?不过,没关系······

     

    我们在调整下,你的docker history 命令就得到正确的答案了,那就是,docker history命令执行时,只看SIZE 大于0的行

     

     

    那么,得到的结果,也是只有1行了。

     

    怎么样?收获如何······

     

     


    一份免费报告
    揭示怎样仅仅通过阅读文章,就能每天赚到5000元现金!
    该报告100%免费
    所有你需要做的是,添加下面的微信,备注"免费报告"

    image

  • 相关阅读:
    HtmlEncode 和 HtmlDecode
    Visual Studio .Net 的一些小技巧(2)
    Array和ArrayList的区别
    c#中 ?? 是什么意思?
    带有图片预览功能的上传表单 上传预览
    Js实现Repeater全选/反选 功能 终极解决方案
    处理URL重写后postback重写失效的问题 .browser文件
    在TreeView中使用CheckBox(c#)
    SQL操作全集
    智能仓库管理系统方案(一)
  • 原文地址:https://www.cnblogs.com/chuanzhang053/p/16588266.html
Copyright © 2020-2023  润新知