Vagrant中虚拟机centos的/dev/sda1突然爆满问题解决纪录

本文记录了一次在Vagrant和Docker环境中遇到的MySQL服务挂掉的问题。通过检查主机和Vagrant的防火墙、重启Vagrant及Docker容器,发现问题是由于Vagrant配置文件中将整个C盘同步到了虚拟机,导致磁盘空间耗尽。解决方案是修改Vagrant配置,只同步指定文件夹,并清理虚拟机内的冗余文件,从而成功重启服务。
摘要由CSDN通过智能技术生成

项目场景:

首先项目中使用vagrant 和docker ,docker中有mysql的容器。​


问题描述

今天在连接数据库时,突然数据库服务挂掉。

没有截图,下文会进行文字分析。

原因分析:

首先想到是不是主机或者vagrant防火墙的问题

经过测试后发现,本机和vagrant 的ip都可以互相ping 通,说明不是二者防火墙的问题。

然后试着重启vagrant , 首先vagrant up启动虚拟机,此时报了一个内存不足的错,但我没有理会,大意了,没有闪,然后使用vagrant ssh连接docker。当我试着查看我docker 已启动的服务时,此时报了一个错,错误如下:


 意思就是守护线程出问题了,但此时我又想到守护线程是服务于主线程的,那肯定是主线程出问题了。也就是服务压根没启动起来。

于是我试着重启docker ,发现重启失败,此处忘了截图。

我又尝试用systemctl status docker 查看docker状态也发现错误:

 此处也无图,大概翻译过来就是,docker 启动失败,docker尝试重启,docker重启过于频繁。这里大概的意思就是尝试启动但启动失败。

然后我又使用df -h命令来查看使用状态

 这个/dev/sdal原来是100%占用的。

于是我找到了这个位置

 发现不能用cd的方式进入这个sdal。说明它不是个文件夹,看这个颜色就知道它不简单,后来查阅资料发现这个是个分区,无法进入。

那么问题就棘手了,我怎么知道哪个文件夹里面满了呢,这个满了的又进不去。

我突然想到vagrant与主机有一个挂载关系,简单说就是主机的一个位置与vagrant 的某个位置的一个对应关系。

这个对应关系的配置目录在

C:\Users\User\.vagrant.d\boxes\centos-VAGRANTSLASH-7\2004.01\virtualbox\Vagrantfile

打开这个文件配置如下:

Vagrant.configure("2") do |config|
  config.vm.base_mac = "5254004d77d3"
  config.vm.synced_folder ".", "/vagrant", type: "rsync"
end
 

config.vm.synced_folder ".", "/vagrant", type: "rsync"意思是将.目录挂载到vagrant中的/vagrant目录下。.的意思指的是整个C盘!!!怪不得,突然爆满,那么开始解决。

解决方案:

首先主机新建一个空文件夹替换掉配置文件中的.

我的如下:

Vagrant.configure("2") do |config|
  config.vm.base_mac = "5254004d77d3"
  config.vm.synced_folder "./MyVagrantSyncFolder", "/vagrant", type: "rsync"
end

然后找到虚拟机中vagrant文件夹,发现确实里面都是C盘中的东西。那么开始rm -rf 大法,删除再新建一个vagrant文件夹。然后重启服务。大功告成!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值