k8s随笔 – docker镜像精简的关键

最近运维打包了一个PHP的镜像,发现有1.7G之大,推送到Harbor后也是1.7G,发布过程下载量过大。

经过研究,发现是由于构建该镜像的Dockerfile采用了大量的COPY/ADD/RUN命令,导致镜像存在大量的小容量的分层。

在推送镜像到Harbor时,Harbor中的docker registry是按层压缩存储的,因为每一层都很小所以压缩比很差,导致harbor中的镜像总体积基本还是1.7G,下载就很慢了。

解决方法就是尽量减少镜像的分层,通过&&把所有安装命令连接起来,一次性搞定所有的安装,这样就只会有一个容量很大的分层,在上传harbor时就得到了巨大的压缩效果,从而加速了后续的镜像下载过程,镜像目前只有500MB不到。

实际上,当我们docker pull镜像到本地时,实际下载量时500MB,在本地解压后就是1.7G了,镜像自身并没有变小,只是存储到harbor时压缩让它变小了。

参考

http://www.dockerinfo.net/3328.html

如果文章帮助您解决了工作难题,您可以帮我点击屏幕上的任意广告,或者赞助少量费用来支持我的持续创作,谢谢~