我从这张图片https://atlas.hashicorp.com/bento/boxes/centos-6.7启动了一个虚拟机,其大小只有2-300MB。然后我安装了一些软件包(java,node,docker等),以便为我的应用程序创建更快的起始图像。
然后我运行yum clean all
和vagrant package --output newimage.box
,但newimage.box
的大小约为3GB。
我一直在四处寻找缩小/缩小此图片尺寸的方法,但并没有找到很多。我发现有人提到zerofree
,但无法将其安装在CentOS盒子上。
这里的任何建议/建议都会非常感激。
答案 0 :(得分:5)
您可以查看封隔器中使用的cleanup script示例来缩小图像大小。
重点是
echo "==> Clean up yum cache of metadata and packages to save space"
yum -y --enablerepo='*' clean all
echo "==> Clear core files"
rm -f /core*
echo "==> Removing temporary files used to build box"
rm -rf /tmp/*
echo '==> Zeroing out empty area to save space in the final image'
dd if=/dev/zero of=/EMPTY bs=1M
rm -f /EMPTY
答案 1 :(得分:1)
Zerofree应该很容易编译,它是一个依赖于ext2的单个c文件。 (官方网站https://frippery.org/uml/)
根据我使用vdi文件的经验,在运行VBoxManage的紧凑命令之前,大小不会发生太大变化。它会出现vagrant使用VDMK磁盘。 VirtualBox afaik不支持压缩VDMK,但此解决方法可能有效https://stackoverflow.com/a/35620550/7217931。据说VMware工作站可以开箱即用。
我宁愿将其作为评论发布,但显然,你需要更多的声誉。