You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

虚拟机文件系统显示容量过大及相关存储问题咨询

虚拟机文件系统显示容量过大及相关存储问题咨询

嘿,别担心,作为Linux新手遇到这种存储疑惑太正常了,咱们一步步来理清你的问题~

关于ncdu显示“离谱容量”的原因

你完全不是误解了Linux,大概率是扫到了系统里的虚拟文件系统

  • Linux里的/proc/sys/dev/shm这些目录,都是内核用来暴露系统状态、硬件信息的虚拟文件,它们并不占用实际磁盘空间,但ncdu默认扫描整个根目录时会把这些虚拟文件的“逻辑大小”算进去,所以会出现看起来容量大得离谱的情况。
  • 解决办法很简单,下次用ncdu扫描时加上-x参数:ncdu -x /,这个参数会让ncdu只扫描当前文件系统,不会跨挂载点,自然就避开了那些虚拟文件系统,得到的结果就是真实的磁盘占用情况了。

如何查看你的存储配额

你提到3GiB限制只适用于/user目录,这说明主机管理员给你设置了针对特定目录的用户配额

  • 要确认自己的配额详情,可以用quota -u 你的用户名命令,它会显示你在配额分区的已用空间、软限制和硬限制。如果这个命令不可用,可能需要联系管理员帮忙安装quota工具。
  • 这种配额设置意味着/var/lib这类系统目录不在你的个人配额里,但虚拟机的总磁盘容量是有限的,Docker往/var/lib/docker写数据会占用总磁盘空间,这就是你之前磁盘耗尽的原因。

Docker存储占用的处理建议

Docker默认把镜像、容器数据存在/var/lib/docker,确实很容易快速占满空间:

  • 先查看Docker的存储使用情况:docker system df,它会列出镜像、容器、卷等各部分的占用。
  • 清理无用资源:用docker system prune(加上-a可以删除所有未使用的镜像,不仅仅是悬空镜像),这个命令会删除停止的容器、未被使用的镜像、卷和网络,执行前确认这些资源你都不需要了。
  • 如果长期需要用Docker,可以考虑把Docker的存储目录迁移到你的/user目录下(前提是配额足够),具体可以修改Docker的配置文件(比如/etc/docker/daemon.json)添加"data-root": "/user/你的目录/docker",然后重启Docker服务。当然,如果需要调整/var/lib的配额,就得联系主机管理员帮忙操作了。

备注:内容来源于stack exchange,提问作者Phoenix Rise

火山引擎 最新活动