注意,最初使用彻底解决Vagrant导致磁盘爆满的问题_“vagrant”将对您的电脑造成伤害。-CSDN博客,该方案第1步:把Virtual box VMS 文件夹剪切到其它盘,打开VitrualBox 面板,点击管理->全局设定->默认电脑位置选择上边的路径,比如你把它剪切到H盘了,那路径就是 H:/virtual Box Vms.方案,结果导致导致虚拟机不能启动,后面用下面的才奏效。
今天使用vagrant up 启动虚拟机报错 提示 No space left on device 磁盘空间已经满了 但是我只在虚拟机中开了两个容器
虽然启动报错 但是 vagrant ssh 还是可以链接
使用 df -h 查看 发现是 /var/docker/overlay2里面的东西占了很大的空间
第一种办法
就是overlay2里的文件真的很大 进入overlay2 使用命令 du -h --max-depth=1查看这个文件夹里的文件大小 删掉大文件
Docker overlay2占用大量磁盘空间的解决办法
第二种情况
进入docekr 查看到底是什么文件占了这么大空间 但是发现overlay其实只有1013M 所以那么大的空间到底去哪儿了
百度有人说出现这种情况是因为删除文件时删除进程没有释放掉 这些进程仍然会占用磁盘空间
使用 yum install lsof 安装 然后 lsof |grep -i deleted 查看所有删除进程 手动 kill这些进程
Linux系统磁盘满use100%,但直接查看文件大小并没有多少内存
第五种办法
还有说再给虚拟机多分配内存的 、重新磁盘分区的 、删掉容器重装的
我出现问题的原因
多多少少试了上面这些方法 没啥效果 可能不是这些原因 后来在虚拟机根目录使用 du -h --max-depth=1查看各个文件的大小 发现有一个41G的
ls查看发现里的东西很多和我本机C盘里的文件一模一样 AppData之类的 为什么这些东西会在虚拟机里 虚拟机同步了C盘里的内容 百度发现 vagrant提供了将本机目录挂载到虚拟机目录下的功能,默认是将vagrant配置文件所在目录挂载到虚拟机/vagrant目录下。
也就是说 我的VagrantFile 是 C/user/username/VagrantFile 那么所有和VagrantFile同级的 C/user/username/里面的内容会全部同步到vagrant中 导致虚拟机内存爆满
解决办法
关掉虚拟机
在个人用户名下创建一个新的文件夹 C:\user\username\MyVagrantSyncFolder
进入到C:\Users\username.vagrant.d\boxes\centos-VAGRANTSLASH-7\2004.01\virtualbox\Vagrantfile
这是每一个虚拟机的操作系统里还有自己的配置文件(不是C:\user\username\VagrantFile)
打开配置文件如下
Vagrant.configure("2") do |config|
config.vm.base_mac = "5254004d77d3"
config.vm.synced_folder ".", "/vagrant", type: "rsync"
end
改为
Vagrant.configure("2") do |config|
config.vm.base_mac = "5254004d77d3"
config.vm.synced_folder "./MyVagrantSyncFolder", "/vagrant", type: "rsync"
end
如果不奏效,就用绝对路径(我用此方案)。在命令行面板输入vagrant up,如果出现同步文件夹变为上面修改的,说明生效了,否则则未生效需检查地址填写是否正确。
启动后链接虚拟机 df -h 正常了
转自解决Vagrant启动虚拟机内存爆满_vagrant 磁盘爆满-CSDN博客
加入自己解决时遇到的问题,方便后面的人少踩坑。