首页 > 其他 > 详细

Docker - docker images存储位置,引出ls和du命令的不同

时间:2019-10-10 01:19:16      阅读:258      评论:0      收藏:0      [点我收藏+]

docker镜像存储位置

例如我的driver是overlay2,则docker镜像的实际存储在/var/lib/docker/overlay2文件夹里面。


ls和du的不同

ls -alh dir/显示文件的大小或文件夹的元数据的大小。所以在ls -alh 文件夹时,元数据存储在一个block里面,一个block的大小(4.0K),而不显示里面实际内容的大小。
du显示当前文件夹的磁盘占有大小。

Summarize disk usage of the set of FILEs, recursively for directories


解决问题的过程 TLDR;

  1. Google一下。找到

    https://stackoverflow.com/a/25978888/5955399

  2. 原来存储位置取决于driver。
  3. 输入docker info查看,关键的信息:Server Version: 18.09.6, Storage Driver: overlay2, Docker Root Dir: /var/lib/docker。我的docker driver是overlay2。
  4. ls -alh /varl/lib/docker/overlay2。咦!为什么都是4.0KB大小?和我的docker images显示的size不同,明明size有几G大。
  5. 想起了linux在磁盘上表现为用block去存储,一个block是4.0KB。ls命令显示的只是文件夹的meta-data,不是实际内容在磁盘的占有大小。

    https://askubuntu.com/questions/186813/why-does-every-directory-have-a-size-4096-bytes-4-k
    https://unix.stackexchange.com/questions/55/what-does-size-of-a-directory-mean-in-output-of-ls-l-command?

  6. 怎么查看实际磁盘占有大小?du -s /var/lib/docker/overlay2的最后一行。
    或者du -sh /var/lib/docker/overlay2
    或者更human readable的,根据文件大小排序du -sh * | sort -h

    https://unix.stackexchange.com/questions/371238/what-is-the-difference-between-file-size-in-ls-l-and-du-sh
    https://stackoverflow.com/questions/1019116/using-ls-to-list-directories-and-their-total-sizes
    https://unix.stackexchange.com/questions/185764/how-do-i-get-the-size-of-a-directory-on-the-command-line
    https://unix.stackexchange.com/questions/371238/what-is-the-difference-between-file-size-in-ls-l-and-du-sh

Docker - docker images存储位置,引出ls和du命令的不同

原文:https://www.cnblogs.com/allen2333/p/11645140.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!