Vagrant
vagrant是个很好用的工具,可以用来工作流构建和管理虚拟机环境,常用的命令也很简单易用,可以配合VirtualBox来启动各类的虚拟机,简单易用。vagrant主要是负责镜像的管理,尤其是对于Mac系统来说,虚拟机比起Docker Desktop或者brew要更加方便管理、迁移、分享,可以更专注于linux做好事情,减少系统差异。另一个场景是当一个线上环境需要安装大量的依赖,如何对新人更加友好,如何使得所有的变更都能迅速同步给所有同学,vagrant也可以用于多环境的情况。
可以养成定期备份快照的好习惯,如果某些文件被误删,或者需要回滚一些操作的时候,就非常方便了。
如何压缩空间
随着使用时间的增长,vagrant的容器体积会不断变大,有一天可能会把宿主机的磁盘都占满。vagrant的容器类似docker,我认为他应该是会不断叠加层级,因为从观察来看,新建一个文件,再删除掉这个文件,镜像的大小并没有减少。他会有一些空间回收,但往往不是那么及时,那么从使用者的角度来说,如何让他更快回收空间,并且确保镜像尽可能小呢。
我罗列出我常用的几个步骤,其中//
为注释的说明内容。1
2
3
4
5
6
7
8
9// 虚拟机内执行
// 清除所有的没用docker
docker system prune --volumes -a
// 对镜像做磁盘空间擦除
sudo dd if=/dev/zero of=/EMPTY bs=1M
sudo rm -f /EMPTY
// 宿主机执行
// 打包镜像
vagrant package --output package.box.20200214
这时候,已经压缩好的镜像就生成好了,也可以将该box分享给其他同学,作为一个内部测试环境等等。
把原虚拟机销毁(vagrant destory,不熟练的话,请谨慎使用),然后修改Vagrantfile,将文件名修改为刚刚打包好的box,通过vagrant up
,虚拟机就又重新焕发新生了。