当前位置: 首页 > news >正文

【docker】docker pull拉取中不断重复下载问题,解决方案之一,磁盘空间扩容

问题类似这样

在这里插入图片描述


存储空间不足

如果 Docker 运行环境的磁盘空间不足,拉取的镜像可能会被自动清理,导致重复下载。可以检查磁盘使用情况:

df -h
docker system df

如果空间不足,可以清理一些不用的容器和镜像:

docker system prune -a

在df-h之后可以看到:
在这里插入图片描述
你的 / 根分区(/dev/mapper/ubuntu–vg-ubuntu–lv)总共 9.8G,已经用了 7.2G,只剩下 2.2G 可用空间,使用率 78%。

虽然空间还没满,但 GitLab CE 镜像通常比较大(可能超过 2GB),所以 磁盘空间可能不够,导致 docker pull 失败并重新下载。


扩容磁盘

  • 关闭虚拟机

  • 设置40G
    在这里插入图片描述

  • 然后他提示还要重新设置分区

  • 重新重启虚拟机连接后

  • 键入lsblk
    在这里插入图片描述

这里显示18.2g说明还没分配

1. 扩展 sda3 分区

  • 接着键入sudo growpart /dev/sda 3
  • 输入lsblk检查

在这里插入图片描述
发现容量扩充成功


2. 扩展 LVM 物理卷

  • sudo pvresize /dev/sda3让 LVM 识别新的空间

  • 然后检查 sudo vgdisplay

  • 可以看到 Free PE / Size 变大了

在这里插入图片描述


3. 扩展逻辑卷

  • 找到LVM逻辑卷sudo lvdisplay
  • 拓展 sudo lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv
    在这里插入图片描述

4.扩展文件系统

查看使用的是那种文件系统

df -Th /

在这里插入图片描述

如果 / 使用的是 ext4 文件系统:

sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv

如果 / 使用的是 xfs

sudo xfs_growfs / 

  • 再次df -h,可以看到比一开始大了很多

在这里插入图片描述

成功

在这里插入图片描述


认识LVM

/dev/mapper/ubuntu--vg-ubuntu--lv 是你的 Linux 逻辑卷(LVM 逻辑卷),它本质上是你的 根分区 /,存放你的操作系统和文件。


简单理解 LVM(逻辑卷管理)

LVM(Logical Volume Manager)是一种灵活的磁盘管理方式,可以让你方便地扩展或缩小磁盘大小。

在你的系统里:

  1. /dev/sda3 是你的物理分区(存储数据的实际硬盘空间)。
  2. ubuntu-vg 是一个 卷组(VG,Volume Group),它把 sda3 里的空间汇总起来。
  3. ubuntu-lv逻辑卷(LV,Logical Volume),它是你实际使用的磁盘,相当于 Windows 里的 C 盘。
  4. /dev/mapper/ubuntu--vg-ubuntu--lv 就是这个逻辑卷的设备路径,最终被挂载到 /(根分区)

为什么用 LVM?

  • 方便扩展:你这次成功扩容,就是因为用了 LVM,可以动态调整大小。
  • 支持多个物理硬盘:LVM 允许你把多个硬盘合并成一个存储池,比如 /dev/sda3 + /dev/sdb1 可以变成一个大分区。
  • 快照功能:LVM 可以创建“快照”,让你在升级或维护前备份数据,出问题时可以快速恢复。

总结

  • /dev/mapper/ubuntu--vg-ubuntu--lv 是你的 根分区 /,但它是 LVM 逻辑卷,而不是直接使用 sda3
  • 你这次扩容成功,是因为 LVM 让你可以动态调整分区大小! 🎉

如果你想更直观地理解,可以运行:

lsblk

它会显示 LVM 结构,比如:

sda        40G
├─sda1      1M
├─sda2    1.8G  /boot
└─sda3   38.2G└─ubuntu--vg-ubuntu--lv  38G  /

这说明 / 现在正确地扩展到了 38G! 🚀


https://github.com/0voice

http://www.lryc.cn/news/542961.html

相关文章:

  • Ubuntu指令(一)
  • nnUNet V2修改网络——加入MultiResBlock模块
  • Spring Boot + Vue 接入腾讯云人脸识别API(SDK版本3.1.830)
  • 【SpringSecurity】springboot整合SpringSecurity实现登录校验与权限认证
  • 【HarmonyOS Next】鸿蒙应用公钥和证书MD5指纹的获取
  • 父组件用的是原生监听,子组件用的是onClick,子组件添加了stopPropagation还是没有阻止传播
  • ui设计公司兰亭妙微分享:科研单位UI界面设计
  • python绘制年平均海表温度、盐度、ph分布图
  • windows中kafka集群部署示例
  • 获取GitHub的OAuth2的ClientId和ClientSecrets
  • self-attention部分代码注释
  • idea里的插件spring boot helper 如何使用,有哪些强大的功能,该如何去习惯性的运用这些功能
  • 常用的配置文件格式对比(ini,toml,yaml,json,env,settings.py)及应用程序修改自身配置并保留注释
  • Java IO 和 NIO 的基本概念和 API
  • 小智AI桌宠机器狗
  • MySQL 入门“鸡”础
  • Redis 中有序集合(Sorted Set)的使用方法
  • WIn32 笔记:本专栏课件
  • Unity git 获取当前修改或者新增的文件列表
  • 结构型模式 - 桥接模式 (Bridge)
  • 如何让传统制造企业从0到1实现数字化突破?
  • 【Elasticsearch】script_fields 和 runtime_fields的区别
  • 城电科技|会追日的智能花,光伏太阳花开启绿色能源新篇章
  • 【笔记ing】C语言补充、组成原理数据表示与汇编实战、操作系统文件实战(高级阶段)
  • 快节奏生活
  • 【音视频】音视频录制、播放原理
  • 前端Sass面试题及参考答案
  • Web自动化之Selenium控制已经打开的浏览器(Chrome,Edge)
  • AF3 unify_template_features 函数解读
  • FFmpeg.NET:.NET 平台上的音视频处理利器