我有 18.03.1-ce 版本的 docker 支持命令 docker system df。他的输出:
Images space usage:\n\nREPOSITORY TAG IMAGE ID CREATED ago SIZE SHARED SIZE UNIQUE SiZE CONTAINERS\nregistry.gitlab.com/precisesale/app latest b7833546c2cf About an hour ago ago 252.1MB 123.8MB 128.4MB 1\nhealthdiary/app latest 565c6d3906e6 2 days ago ago 312.2MB 123.8MB 188.4MB 1\nmongo latest f93ff881751f 5 days ago ago 367.6MB 0B 367.6MB 2\nnginx latest b175e7467d66 6 weeks ago ago 108.9MB 0B 108.9MB 1\njwilder/docker-gen latest 8959ee34c769 2 months ago ago 19.91MB 4.148MB 15.77MB 1\njrcs/letsencrypt-nginx-proxy-companion latest 17939ceb7a52 2 months ago ago 86.86MB 4.148MB 82.71MB 1\n\nContainers space usage:\n\nCONTAINER ID IMAGE COMMAND LOCAL VOLUMES SIZE CREATED ago STATUS NAMES\nc20dc3438552 healthdiary/app "./entrypoint.sh nod\xe2\x80\xa6" 0 0B 8 minutes ago ago Up 8 minutes healthdiary_app_1\nbf8c4307dcbb mongo:latest "docker-entrypoint.s\xe2\x80\xa6" 1 0B 8 minutes ago ago Up 8 minutes healthdiary_mongo_1\n47fced8d18fe registry.gitlab.com/precisesale/app "./entrypoint.sh nod\xe2\x80\xa6" 0 0B 9 minutes ago ago Up 9 minutes precisesale_app_1\n597d97d5c1fa mongo:latest "docker-entrypoint.s\xe2\x80\xa6" 1 0B 9 minutes ago ago Up 9 minutes precisesale_db_1\nb5bb14faa910 jwilder/docker-gen "/usr/local/bin/dock\xe2\x80\xa6" 0 0B 7 hours ago ago Up 19 minutes nginx-gen\n8eee2bee084a nginx "nginx -g \'daemon of\xe2\x80\xa6" 0 2B 7 hours ago ago Up 19 minutes nginx-web\n6b8b0cd5d938 jrcs/letsencrypt-nginx-proxy-companion "/bin/bash /app/entr\xe2\x80\xa6" 0 1.66kB 7 hours ago ago Up 19 minutes nginx-letsencrypt\n\nLocal Volumes space usage:\n\nVOLUME NAME LINKS SIZE\n0a40fac6ca98e776dad972c8193362a51a485b3305979e58996545d97310a3c7 1 0B\n929b0b88849ad4d390efd4666e6a0e5f82e0e6dd34f7a09f609de90b190e6148 1 0B\n\nBuild cache usage: 0B\nRun Code Online (Sandbox Code Playgroud)\n\n即使我不考虑前两个容器共享空间的节省,摘要大小也是1147.5 MB
但是如果我测量光盘上 docker overlay2 的大小du我得到
du -hs /var/lib/docker/overlay2/\n2.7G /var/lib/docker/overlay2/\nRun Code Online (Sandbox Code Playgroud)\n\ndocker system df和测量的集装箱尺寸差异的原因在哪里du?
小智 7
我前段时间也想知道同样的事情。\n它\xe2\x80\x99s不是一个错误,它\xe2\x80\x99s是一个功能:-)
\n\ndu -sh /var/lib/docker/overlay2\nRun Code Online (Sandbox Code Playgroud)\n\n未显示目标值,因为合并文件夹已使用覆盖驱动程序安装,并且 du 输出不是实际的磁盘分配大小。
\n\n您可以通过仅检查 diff 文件夹来查看实际的磁盘分配大小,例如:
\n\ndu -shc /var/lib/docker/overlay2/*/diff\nRun Code Online (Sandbox Code Playgroud)\n\n您可以在您的环境中进行测试,如下所示:\n运行
\n\ndf -h /dev/sd*\ndu -shc /var/lib/docker/overlay2/*/diff\ndu -sh /var/lib/docker/overlay2\nRun Code Online (Sandbox Code Playgroud)\n\n现在启动 20 个 centos 容器并观察发生了什么变化:
\n\nfor i in {1..20}; do docker run -itd centos bash; done\ndf -h /dev/sd*\ndu -shc /var/lib/docker/overlay2/*/diff\ndu -sh /var/lib/docker/overlay2\nRun Code Online (Sandbox Code Playgroud)\n\n您可以看到实际的磁盘分配(df 命令)仅比以前多了 cca 200MB,但整个文件夹上的 \xe2\x80\x9cdu\xe2\x80\x9d 输出 4.2G 分配。\n\xe2\x80\x9cdu\ \xe2\x80\x9cdiff\xe2\x80\x9d 文件夹上的 xe2\x80\x9d 显示 212M 是正确的。
\n\n这就是 Docker 的工作原理以及它的伟大之处!
\n| 归档时间: |
|
| 查看次数: |
2810 次 |
| 最近记录: |