【问题标题】:how to reduce the size of Vagrant VM image如何减小 Vagrant VM 映像的大小
【发布时间】:2016-06-14 02:44:00
【问题描述】:

我从这张图片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 机器上安装它。

任何建议/建议将不胜感激。

【问题讨论】:

    标签: vagrant centos6


    【解决方案1】:

    您可以查看一个 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.85GB。你认为这是最小的,还是有办法进一步压缩它?
    • 您可以向df -h 查询磁盘使用情况,这取决于您安装的所有内容,它可能是最小的
    • df -h 报告为/dev/sda1 477M 56M 396M 13% /boot。在我看来,安装这些软件包会使图像大小增加 8-9 倍。
    【解决方案2】:
    1. Zerofree 应该很容易编译,它是一个依赖于 ext2 的单个 c 文件。 (官网https://frippery.org/uml/

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-27
      • 1970-01-01
      • 2021-12-04
      • 2020-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-09
      相关资源
      最近更新 更多