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

解决Docker存储空间不足问题 - 指南

虚拟机磁盘扩展实战:解决Docker存储空间不足问题

问题背景

在虚拟机中运行的Linux系统上,Docker服务因根分区空间不足而无法正常运行。初始状态如下:

[root@localhost ~]# df -h /
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 17G 17G 983M 95% /
[root@localhost ~]# docker system df
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 8 7 3.914GB 260.4MB
Containers 8 4 6.741GB 18.13kB

根分区使用率已达95%,仅剩983MB空间,导致Docker无法正常工作。

完整解决方案

步骤1:安装parted工具(如未安装)

# 检查parted是否已安装
which parted || echo "parted not installed"
# 安装parted工具
sudo yum install -y parted # CentOS/RHEL
# 或
sudo apt-get install -y parted # Ubuntu/Debian
# 验证安装
sudo parted --version

步骤2:扩展虚拟机磁盘

  1. 关闭虚拟机
  2. 在虚拟机管理软件中:
    • VMware: 虚拟机设置 → 硬盘 → 扩展
    • VirtualBox: 设置 → 存储 → 调整大小
    • 将磁盘从30GB扩展到53.7GB
  3. 启动虚拟机

步骤3:进入parted交互模式

# 启动parted工具(需要root权限)
sudo parted /dev/sda

步骤4:parted交互操作指南

在parted交互模式中,按顺序执行以下命令:

# 1. 查看当前分区信息
(parted) print
# 2. 调整分区大小(注意:100%后不要添加任何注释)
(parted) resizepart 2 100%
# 3. 确认分区已扩展
(parted) print
# 4. 退出parted
(parted) quit

关键操作截图

(parted) print # 执行前
Number Start End Size Type File system 标志
1 1049kB 1075MB 1074MB primary xfs 启动
2 1075MB 30.0GB 28.9GB primary lvm
(parted) resizepart 2 100% # 正确执行
(parted) print # 执行后
Number Start End Size Type File system 标志
1 1049kB 1075MB 1074MB primary xfs 启动
2 1075MB 53.7GB 52.6GB primary lvm

步骤5:更新分区表

# 强制内核重新读取分区表
sudo partprobe -s /dev/sda
sudo udevadm settle
# 确认分区已扩展
sudo fdisk -l /dev/sda

预期输出

设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 104857599 51379200 8e Linux LVM

步骤6:扩展物理卷(PV)

# 强制物理卷使用整个分区空间
sudo pvresize /dev/sda2
# 验证PV大小
sudo pvdisplay /dev/sda2

检查关键值

  • PV Size 应接近53.7GB
  • Free PE 应有大量空间

步骤7:扩展逻辑卷(LV)和文件系统

# 查看卷组可用空间
sudo vgdisplay centos | grep "Free"
# 将所有空闲空间分配给根逻辑卷
sudo lvextend -l +100%FREE /dev/mapper/centos-root
# 扩展XFS文件系统
sudo xfs_growfs /dev/mapper/centos-root
# 验证最终结果
df -h /

成功验证

操作完成后,系统显示:

[root@localhost ~]# df -h /
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 54G 17G 37G 32% /
[root@localhost ~]# docker system df
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 8 7 3.914GB 260.4MB
Containers 8 4 6.741GB 18.13kB

根分区从17GB扩展到54GB,Docker存储空间不足问题得到解决。

Parted交互模式详解

什么是parted交互模式?

parted是一个磁盘分区工具,提供两种使用方式:

  1. 命令行模式:sudo parted /dev/sda resizepart 2 100%
  2. 交互模式:通过sudo parted /dev/sda进入,然后输入命令

为什么使用交互模式?

  1. 更直观:每一步操作都有明确提示
  2. 更安全:操作前可预览更改
  3. 更灵活:支持多种磁盘操作命令

常用交互命令:

命令功能示例
print显示分区表(parted) print
resizepart调整分区大小(parted) resizepart 2 100%
rm删除分区(parted) rm 3
mkpart创建新分区(parted) mkpart primary 30GB 100%
quit退出交互模式(parted) quit

关键要点

  1. 操作顺序至关重要

  2. parted命令注意事项

    # 正确命令(简洁无注释)
    (parted) resizepart 2 100%
    # 错误命令(会导致失败)
    (parted) resizepart 2 # 选择要调整的分区(这里是分区2)
  3. LVM扩展逻辑

    物理磁盘 → 分区 → 物理卷(PV) → 卷组(VG) → 逻辑卷(LV) → 文件系统
  4. XFS文件系统特性

常见问题解决方案

问题1:parted未安装

# CentOS/RHEL
sudo yum install -y parted
# Ubuntu/Debian
sudo apt-get update &&
sudo apt-get install -y parted

问题2:parted命令无效

# 确保使用正确语法
(parted) help resizepart # 查看命令帮助
# 使用绝对路径
/sbin/parted /dev/sda

问题3:空间未完全释放

# 清理Docker无用数据
docker system prune -af
# 清理系统日志
sudo journalctl --vacuum-size=200M
sudo rm -rf /var/log/journal/*

问题4:parted无法调整分区

使用fdisk替代方案:

# 备份分区表
sudo sfdisk -d /dev/sda > sda.bak
# 进入fdisk交互模式
sudo fdisk /dev/sda
# 在fdisk中执行:
d # 删除分区
2 # 选择分区2
n # 新建分区
p # 主分区
2 # 分区号2
2099200 # 起始扇区(必须相同!)
Enter # 使用默认结束位置(整个磁盘)
t # 更改类型
2 # 选择分区2
8e # Linux LVM 类型
w # 写入更改

总结

通过本指南,您成功实现了:

  1. parted工具的安装与使用
  2. 虚拟机磁盘从30GB扩展到53.7GB
  3. Linux分区扩展到整个可用空间
  4. LVM物理卷和逻辑卷的扩展
  5. XFS文件系统的在线扩展
  6. Docker存储空间不足问题的解决

经验提示:在生产环境中操作前,务必对虚拟机进行快照备份,以防操作失误导致数据丢失。parted交互模式虽然需要额外学习,但提供了更直观和安全的分区管理方式。

http://www.sczhlp.com/news/171981/

相关文章:

  • 每个JavaScript开发者都应掌握的33个核心概念
  • 电商网站开发流程海曙网站建设哪家好
  • 公司网站微信平台建设的好处wordpress发文章后显示两篇
  • 什么网站做电脑系统好网站建设新闻+常识
  • 网站建站wordpress建设信用卡分期购物网站
  • 建设银行银监会官方网站山河建设集团有限公司的网站
  • 谁有手机网站发几个吧上海中建建筑设计院有限公司
  • 为什么要选择做花卉网站怎么做蒙文网站
  • 股票网站模板做网站办贷款
  • 南宁网站建设免费推广怎样做自己的网站钻钱
  • 网站 多个ip 备案什么网站可以接效果图做
  • 公司网站制作机构网站建设类型分类
  • 江苏省住房与城乡建设部网站怎么把自己做的网站发布到网上
  • 建设企业网站技术解决方案做彩铃的网站
  • c 开发网站开发群发软件
  • 响应网站先做电脑端wordpress文本框代码
  • 临海市住房和城乡建设规划局 网站做网站要有数据库么
  • 上海营销型网站设计制作网站要多少费用
  • 免费word文档模板下载网站wordpress iis8.5
  • 临汾推广型网站建设企业管理培训课程免费
  • 鼎城网站建设wordpress付费知识
  • 网站建设易网广州网站建设信科网络
  • 网站互动交流怎么做自己做网站 空间怎么买
  • 网站建设管理需要招聘什么人才企业网站布局960
  • 怎么做服务网站wordpress适合视频网站吗
  • lnmp中安装wordpress门户网站优化方案
  • Nova Premier模型安全评估结果解析
  • 完整教程:数据结构:递归的种类(Types of Recursion)
  • 网站建设能给客户带来什么云主机怎么装网站
  • 北京哪里做网站湘潭市建设局网站