vagrant打包,释放包空间

使用 Vagrant 打包并运行本地开发环境 使用工具 Virtualbox 免费开源的虚拟机软件,使用它可以快速生成虚拟机 Vagrant 基于Ruby的工具,用于创建和部署虚拟化开发环境 Git 使用Git for Windows 来作命令行工具 ... 阅读详情

前言

今天准备打包自己的虚拟机,这时发现了个问题 , 虚拟机比之前我按时的时候增加了5个G,考虑到以后其他人还能会使用这个开发环境。
所以现在首要问题是搞清楚虚拟机为什么会占用如此多的空间并解决空间占用问题?

问题描述

虚拟机从一开安装的500MB,运行了半年多,变成了5个多G,是因为虚拟机系统日志,缓存之类的文件导致了虚拟机占用空间越来越大。

解决办法

  • 登录虚拟机,新建purge.sh文件,并且增加执行权限x
vagrant@vagrant:~$ sudo touch purge.sh
vagrant@vagrant:~$ sudo chmod a+x purge.sh
  • 使用vi命令打开purge.sh 文件添加如下代码:
#!/bin/sh
 
# Credits to:
#  - http://vstone.eu/reducing-vagrant-box-size/
#  - https://github.com/mitchellh/vagrant/issues/343
#  - https://gist.github.com/adrienbrault/3775253

## for vagrant related tasks, uncomment vagrant comments
 
# vagrant: Unmount project
#printf "STEP: vagrant: Unmount project\n"
#umount /vagrant
 
# Remove APT cache
printf "STEP: Remove APT cache\n"
apt-get clean -y
apt-get autoclean -y
 
# Zero free space to aid VM compression
printf "STEP: Zero free space to aid VM compression\n"
dd if=/dev/zero of=/EMPTY bs=1M
rm -f /EMPTY
 
# Remove APT files
printf "STEP: Zero free space to aid VM compression\n"
find /var/lib/apt -type f | xargs rm -f
 
# Remove documentation files
printf "STEP: Remove documentation files\n"
find /var/lib/doc -type f | xargs rm -f
 
# vagrant: Remove Virtualbox specific files
#printf "STEP: vagrant: Remove Virtualbox specific files\n"
#rm -rf /usr/src/vboxguest* /usr/src/virtualbox-ose-guest*
 
# Remove Linux headers
printf "STEP: Remove Linux headers\n"
rm -rf /usr/src/linux-headers*
 
# Remove Unused locales (edit for your needs, this keeps only en* and pt_BR)
printf "STEP: Remove Unused locales (edit for your needs, this keeps only en* and pt_BR)
find\n" 
find /usr/share/locale/{af,am,ar,as,ast,az,bal,be,bg,bn,bn_IN,br,bs,byn,ca,cr,cs,csb,cy,da,de,de_AT,dz,el,en_AU,en_CA,eo,es,et,et_EE,eu,fa,fi,fo,fr,fur,ga,gez,gl,gu,haw,he,hi,hr,hu,hy,id,is,it,ja,ka,kk,km,kn,ko,kok,ku,ky,lg,lt,lv,mg,mi,mk,ml,mn,mr,ms,mt,nb,ne,nl,nn,no,nso,oc,or,pa,pl,ps,qu,ro,ru,rw,si,sk,sl,so,sq,sr,sr*latin,sv,sw,ta,te,th,ti,tig,tk,tl,tr,tt,ur,urd,ve,vi,wa,wal,wo,xh,zh,zh_HK,zh_CN,zh_TW,zu} -type d -delete
 
# Remove bash history
printf "STEP: Remove bash history\n"
unset HISTFILE
rm -f /root/.bash_history

# vagrant: Remove bash history
#printf "STEP: vagrant: Remove bash history\n"
#rm -f /home/vagrant/.bash_history
 
# Cleanup log files
printf "STEP: Cleanup log files\n"
find /var/log -type f | while read f; do echo -ne '' > $f; done;
 
# Whiteout root
printf "STEP: Whiteout root\n"
count=`df --sync -kP / | tail -n1  | awk -F ' ' '{print $4}'`;
count=$((count -= 1))
dd if=/dev/zero of=/tmp/whitespace bs=1024 count=$count;
rm /tmp/whitespace;
 
# Whiteout /boot
printf "STEP: Whiteout /boot\n"
count=`df --sync -kP /boot | tail -n1 | awk -F ' ' '{print $4}'`;
count=$((count -= 1))
dd if=/dev/zero of=/boot/whitespace bs=1024 count=$count;
rm /boot/whitespace;
 
# Whiteout swap 
printf "STEP: Whiteout swap\n"
swappart=`cat /proc/swaps | tail -n1 | awk -F ' ' '{print $1}'`
swapoff $swappart;
dd if=/dev/zero of=$swappart;
mkswap $swappart;
swapon $swappart;
  • 执行purge.sh脚本
vagrant@vagrant:~$ sudo ./purge.sh

测试结果

打包后的虚拟机大小为 700MB,效果明显、惊人 。。。
在这里插入图片描述

Vagrant配合VirtualBox搭建虚拟机 Vagrant搭建virtual box虚拟机,打包虚拟机,多机器部署 阅读详情

相关推荐

vagrant 使用小结(打包自己的base box,使用等)

vagrant 创建base box ,使用小结 版本 : Vagrant 2.3.3 VBoxManage 6.1.40 平台:WIN11、Ubuntu 20.04

wasknk的专栏 426

解决Vagrant启动虚拟机内存爆满

今天使用vagrant up 启动虚拟机报错 提示 No space left on device 磁盘空间已经满了 但是我只在虚拟机中开了两个容器 虽然启动报错 但是 vagrant ssh 还是可以链接 使用 df -h 查看 发现是 /var/docker/overlay2里面的东西占了很大的空间 第一种办法 就是overlay2里的文件真的很大 进入overlay2 使用命令 du -h --max-depth=1查看这个文件夹里的文件大小 删掉大文件 Docker overlay2占用大

Kaaaakaki的博客 3494

vagrant-centos, 构建你自己的最小 Vagrant CentOS.zip

vagrant-centos, 构建你自己的最小 Vagrant CentOS vagrant想要一个Vagrant的base? 也许是定制的不要下载不受信任的东西? 这将启动一个VirtualBox和一个基于ruby的网络服务器来托管Kickstart自动化安装脚本。 使用了理想的和最小的默认值,并且在学习工具时

vagrant 部署centos7挂载目录失败的问题解决方法

vagrant centos7 无法挂载目录

zjl20068_123的博客 2010

拆开一个烧坏的IGBT模块,手把手教你识别过压、过流、过温的“案发现场”

本文详细解析了IGBT模块失效分析的实战技巧,通过观察铝层熔化纹路、焊锡溢出形态等物理痕迹,手把手教你识别过压、过流、过温的典型失效模式。文章提供了从基础工具包到现场快速诊断的完整流程,帮助工程师精准定位IGBT模块失效的根本原因。

weixin_30655569的博客 426

用Bus Hound和MIDIOX抓包分析USB MIDI数据流:从硬件接口到软件解析的完整实战

本文详细介绍了如何使用Bus Hound和MIDIOX工具抓包分析USB MIDI数据流,从硬件接口到软件解析的完整实战过程。通过解析MIDI协议、捕获Note On/Off事件、控制变更消息等实例,帮助开发者深入理解音乐数字接口的底层通信机制,并提供了常见问题的解决方案和调试技巧。

weixin_42692935的博客 406

Virtualbox+Vagrant搭建linux虚拟机并搭建easySwoole框架

Virtualbox+Vagrant搭建linux虚拟机并搭建easySwoole框架

qq_45067424的博客 1549

LSF调度实战:如何用bsub命令实现多队列资源抢占与公平调度

本文深入探讨了LSF作业调度系统的高级实战技巧,重点解析如何通过配置`lsb.queues`文件与灵活运用`bsub -R`命令,构建一套兼顾效率与公平的多队列资源抢占与调度体系。文章详细介绍了队列优先级设计、公平共享机制、资源感知调度以及抢占策略的实施,帮助集群管理员解决高优先级任务等待、资源分配不均等常见问题,实现计算资源的精细化管理和高效利用。

vvv99的博客 218

windows 安装vagrant reload 失败; No Virtualbox Guest Additions installation found.

D:\vagrant\default>vagrant reload ==> default: You assigned a static IP ending in ".1" to this machine. ==> default: This is very often used by the router and can cause the ==> default: network to not work properly. If the network doesn't work.

lxw1844912514的博客 3412

AI图像识别在临电配电箱安全检测中的应用与实践

计算机视觉与AI图像识别技术正逐步改变传统工业检测方式。通过深度学习模型如YOLOv5和ResNet,系统能自动识别设备元件并分析其状态,大幅提升检测效率和准确性。这种技术特别适用于需要严格遵循行业标准的场景,如临电配电箱的安全检测。将《施工现场临时用电安全技术规范》等条文转化为可量化的算法,AI系统能自动检查PE线连接、漏保功能等关键项目。实际应用表明,此类解决方案可使电气事故率下降90%以上,同时检测耗时缩短80%,为工地安全提供了智能化保障。

weixin_29042035的博客 328

HTTPS接口测试翻车实录:为什么浏览器能访问而curl报证书错误?

本文深入分析了HTTPS接口测试中浏览器访问正常而curl报证书错误的典型问题。通过对比浏览器、Postman和curl的工具行为差异,结合Nginx日志与Wireshark抓包,揭示了问题根源在于网络架构中HTTPS请求被意外“降级”为HTTP传输,导致SSL握手失败。文章重点探讨了curl工具严格验证机制暴露的`Peer's Certificate issuer is not recognized`错误,并提供了网络配置修正方案与标准化测试流程。

u9v0w的博客 278

vagrant package打包box详解

首先,我们需要的到虚拟机的真实名称,因为虚拟机的真实名称可能和你起的名字是不一样的,方法如下: 进入virtualbox安装目录,是virtualbox不是vagrantbox,我在这个问题上因为一眼之差浪费了老半天。 那一长串字符串就是你的虚拟机真实名称了。 vagrant package -hUsage: vagrant package [options] [name]O

FreeeLinux's blog 1万+

在thinkBook16的win11基础上安装ubuntu22.04

背景:联想ThinkBook16 pro 32G/512G,系统盘已安装Win11,加装一条M.2-2T固态,想在2T上分一个300GB的EXT4分区,然后把ubuntu22.04安装在该分区上,并实现Win11+Linux多系统共存。 目标:实现多磁盘下分区管理的简化,优化掉一些不必要的多余的维护性质的分区。

QzmAIoT 4003

macinbox vs 传统打包工具:谁才是macOS Vagrant最佳选择?

在macOS开发和测试环境搭建中,Vagrant凭借其便捷的环境一致性管理能力广受青睐。而将macOS系统打包成Vagrant box的过程,却常常让开发者头疼不已。传统打包工具步骤繁琐、耗时费力,而macinbox作为一款专为macOS设计的Vagrant box生成工具,正以其独特优势改变这一现状。本文将深入对比macinbox与传统打包工具,助你找到macOS Vagrant环境的最佳打包方

gitblog_00390的博客 1061

华为OD机试 - 压缩日志查询(Python/JS/C/C++ 双机位C卷 100分)

本专栏收录于《华为OD机试真题(Python/JS/C/C++)》。刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新。某设备需要记录每分钟检测到的指标值。为了节约存储空间,将连续相同指标值的记录合并。压缩之前:202411231000,11 202411231001,11 202411231002,12 202411231003,12 202411231004,

学Java,找哪吒 1880

FanucROBOGUIDE软件二次开发:使用ROBOGUIDEAPI进行编程

菜单栏:位于界面顶部,提供文件、编辑、视图、插入、格式、工具、窗口和帮助等选项。工具栏:包含常用的工具按钮,如新建、打开、保存、运行、停止、机器人控制等。工作站视图:显示工作站的3D模型,用户可以在这里放置机器人、工件、工具和其他设备。机器人控制面板:用于控制机器人运动,包括手动移动、程序编辑和运行。程序编辑器:在这里可以编写和编辑机器人程序,支持Fanuc的R-30iB Plus和R-30iB控制柜的程序格式。状态栏:显示当前工作站的状态信息,如机器人位置、程序状态等。

kkchenjj的博客 1408

vagrant package 打包自己的box镜像

关于如何在win下使用Vagrant和Virtual Box创建一台CentOS7虚拟机我的博客中有教程介绍: https://www.tiance.club/post/2370098709.html 搭建完毕后等虚拟机的细节都调整好后强烈建议打包成自己的镜像,以后需要在其他电脑安装虚拟机环境或者电脑的虚拟机出问题的时候可以直接一键还原,不然要重新搭建有点繁琐。 1、查看虚拟机名称 去到虚拟机安装...

u011063477的博客 751

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

vagrant的学习 之 打包分发

vagrant的学习 之 打包分发 一、打包Box: (1)关闭虚拟机。 vagrant halt (2)打包: vagrant package 这样打包出来的文件叫package.box。 指定生成的包名字: vagrant package --output ubuntu.box 二、升级Box: 老用户,可以修改 Vagran...

179

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

vagrant package 打包自己的box

vagrant package vagrant package 介绍 vagrant package -h Options: –base NAME Name of a VM in virtualbox to package as a base box –output NAME Name of...

菜鸟没翅膀 7256

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

vagrant 打包 box

1.建立文件:Vagrantfile.pkg 内容如下:Vagrant::Config.run do |config|                 # Forward apache                 config.vm.forward_port 80, 8080          end 保存。 2.

a695017449的专栏 4640

使用vagrant打包VM为vBox(Vagrant操作虚拟机)

引用参考1 引用参考2 目的 将一个VM打包为vbox文件,用这个vbox文件配置一个相同环境的虚拟机。 1.将这个文件分发给其他用户(开发者)使用; 2.自己用来做分布式模型,如:数据库主从。 1.得到vbox对应的VM名称 找到/home/用户/VirtualBox VMs目录,就是VM安装目录。 # 输入终端命令: vboxmanage list vms # 得到box名称和uuid,记录box名称: "centos7-mysql" {273d0dc7-7163-4f48-a233-9a4bae

心若有所栖,何似风飘缈。 589

Detox Pilot 自然语言端到端测试指南:用 LLM 把人类语言翻译成 Detox 动作与断言

Detox Pilot(即 Wix Pilot 的 Detox 集成)是 Detox 内置的 AI 辅助测试门面(facade),它借助大语言模型(LLM)将自然语言指令翻译为 Detox 的端到端动作与断言。本文基于 [Detox Pilot API 文档](https://link.gitcode.com/i/0fc662b8a2bfb3b91c3af2de1a697644),结合仓库内 [D

gitblog_00839的博客 782

Vagrant安装

在学习区块链项目 Hyperledger Fabric时,因为他们使用了Vagrant作为虚拟机,所以,就先学习了一下Vagrant,下面是vagrant的安装教程。概述Vagrant是一个基于Ruby的工具,用于创建和部署虚拟化开发环境。它使用Oracle的开源VirtualBox虚拟化系统,使用 Chef创建自动化虚拟环境。下载官网https://www.vagrantup.com/downlo

zgljl2012的专栏 6212

Vagrant基本命令详解

正在学习Docker Swarm,接触到了Vagrant。Vagrant是一个创建虚拟机的技术,可以把它认为是一个Vmware,它让我们可以通过代码的方式快速地、可重复地创建针对不同虚拟环境的虚拟机,包括Virtualbox、AWS、Docker等。它使得我们可以一次性地、自动创建多个环境相同的虚拟机,对于软件开发和测试尤其有用,以下是在使用过程中常用到的一些基本...

lxw1844912514的博客 3472

vagrant 打包box 快速部署统一开发环境

vagrant 打包使用 vagrant package 命令 1.首先查看本地虚拟机 vboxmanage list vms 2.打包导出 vagrant package --base php-centos7-site --output ./phpsite.box 执行完成在当前目录下会有phpsite.box 存在。将该box 拷贝其他电脑进行vagrant 环境...

weixin_30698297的博客 115
上一篇: Sublime Text3 安装 install package control 失败解决办法
下一篇: Your requirements could not be resolved to an installable set of packages.
dadeity
博客等级 码龄10年 1172粉丝 225原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dadeity

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值