如何减小Vagrant VM镜像的大小

时间:2016-03-01 15:36:23

标签: vagrant centos6

我从这张图片https://atlas.hashicorp.com/bento/boxes/centos-6.7启动了一个虚拟机,其大小只有2-300MB。然后我安装了一些软件包(java,node,docker等),以便为我的应用程序创建更快的起始图像。

然后我运行yum clean allvagrant package --output newimage.box,但newimage.box的大小约为3GB。

我一直在四处寻找缩小/缩小此图片尺寸的方法,但并没有找到很多。我发现有人提到zerofree,但无法将其安装在CentOS盒子上。

这里的任何建议/建议都会非常感激。

2 个答案:

答案 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)

  1. Zerofree应该很容易编译,它是一个依赖于ext2的单个c文件。 (官方网站https://frippery.org/uml/

  2. 根据我使用vdi文件的经验,在运行VBoxManage的紧凑命令之前,大小不会发生太大变化。它会出现vagrant使用VDMK磁盘。 VirtualBox afaik不支持压缩VDMK,但此解决方法可能有效https://stackoverflow.com/a/35620550/7217931。据说VMware工作站可以开箱即用。

  3. 我宁愿将其作为评论发布,但显然,你需要更多的声誉。