为什么Docker镜像大小与仓库中不一致?
发表于:2024-11-12 作者:千家信息网编辑
千家信息网最后更新 2024年11月12日,开始之前如果仔细观察你会发现,Docker宿主机中某个镜像所占用的磁盘空间和在 Docker Hub(仓库)上看到的镜像大小是不同的,例如 golang:1.9 在 Docker Hub (仓库)显示
千家信息网最后更新 2024年11月12日为什么Docker镜像大小与仓库中不一致?
开始之前
如果仔细观察你会发现,Docker宿主机中某个镜像所占用的磁盘空间和在 Docker Hub(仓库)上看到的镜像大小是不同的,例如 golang:1.9
在 Docker Hub (仓库)显示的是 272MB
,而镜像下载后docker image ls
命令给出的却是 733MB
。
这是因为 Docker Hub (仓库)中显示的大小是压缩后的体积,在镜像下载和上传过程中镜像是保持压缩状态的,以保证能够更快速的下载或上传镜像,而 docker image ls
命令是镜像下载到本地展开后的各层所占空间的总和。
Unino FS
Docker 镜像是多层存储结构,并且可以继承、复用,因此不同镜像可能会因为使用相同的基础镜像,从而拥有共同的层。docker image ls
命令列出的镜像体积总和并非是所有镜像实际消耗硬盘空间,因为基于 Union FS
技术(联合文件系统),相同的层只需要保存一份即可,所以实际镜像硬盘使用空间可能要比这个小的多。
可以通过以下命令来查看镜像、容器、数据卷所占用的空间。
docker system dfTYPE TOTAL ACTIVE SIZE RECLAIMABLEImages 52 0 9.846GB 9.846GB (100%)Containers 0 0 0B 0BLocal Volumes 0 0 0B 0B
命令帮助
docker system --helpUsage: docker system COMMANDManage DockerOptions: --help Print usageCommands: `df` Show docker disk usage events Get real time events from the server info Display system-wide information prune Remove unused data# 省略...
注意,docker 1.13.1(含) 后版本支持 system 子命令。
小结
最后来总结下文章中的知识点
- Docker仓库侧重点是网络,镜像下载和上传过程中始终保持压缩状态。
- 由于
Union FS
的特性,不同docker镜像可能会使用相同的基础镜像,doker images
命令列出的镜像体积总和并不能代表实际使用的磁盘空间,需要使用docker system df
命令来代替。
参考文章
doker&k8s Qun [703906133]
镜像
命令
空间
仓库
不同
相同
体积
实际
总和
大小
基础
文章
状态
硬盘
磁盘
过程
代表
侧重点
可以通过
多层
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
揭示了网络安全的什么规律
温江区公安网络安全招标
庞国莉 数据库
数据库验证失败
数据库联动
我的世界开服务器指令
软件开发工具的核心
数据库出现重ID
有关网络安全的倡议书100
服务器必须初始化网络吗
上海基站软件开发部华为
高铁单车服务器框图
丹东市网络安全应急指挥中心电话
宝凯科技软件开发有限公司
济南市正规浪潮服务器销售
网络安全赛制游戏
华胜天成自主服务器
星辰奇缘服务器
网络安全图片授课
FOX下载软件开发
朝阳软件开发哪家好
征途不能下载服务器
bmob云数据库
静安区第三方软件开发郑重承诺
恒生互联网科技指数选股条件
淮南科艾网络技术
腾达远程管理服务器
电脑出现了代理服务器拒绝连接
摩尔庄园手游小美人鱼服务器编号
珠海软件开发定制app小程序