为什么字节大量用GO而不是Java?
在 CentOS 7 虚拟机 环境中,如果遇到磁盘空间不足,需要进行 硬盘扩容,同时为了优化 Docker 使用,需要 修改默认存储位置。下面我分两部分说明,保证流程严谨、操作可复现。⚙️
一、CentOS7 虚拟机硬盘扩容
1. 虚拟层面扩容
在虚拟化平台(如 VMware、VirtualBox 或 KVM)中,将虚拟磁盘容量调整为更大,例如从 40GB 调整为 80GB。此时系统内核能检测到新大小,但文件系统未扩展。
2. 检查新硬盘空间
lsblk
fdisk -l
确认新空间已被系统识别。
3. 扩展分区
如果是 LVM 管理:
# 查看卷组和逻辑卷
vgdisplay
lvdisplay
# 扩展逻辑卷,例如 /dev/centos/root
lvextend -l +100%FREE /dev/centos/root
# 扩展文件系统
xfs_growfs /dev/centos/root
如果是 EXT4 文件系统:
resize2fs /dev/mapper/centos-root
完成后再用 df -h 检查容量是否扩展成功 ✅。
二、修改 Docker 默认存储位置
Docker 默认将镜像、容器、卷存放在 /var/lib/docker,当系统盘空间不足时,需迁移到扩容后的磁盘或新挂载目录。
1. 停止 Docker 服务
systemctl stop docker
2. 准备新存储目录
例如迁移到 /data/docker:
mkdir -p /data/docker
3. 同步数据
rsync -avz /var/lib/docker/ /data/docker/
4. 修改配置文件
编辑 /etc/docker/daemon.json,若不存在则新建:
{
"data-root": "/data/docker"
}
5. 启动 Docker
systemctl daemon-reload
systemctl start docker
systemctl enable docker
6. 验证
docker info | grep "Docker Root Dir"
输出应为 /data/docker 🎉。
三、操作流程总结表
| 步骤 | 操作 | 目的 |
|---|---|---|
| 扩容前检查 | lsblk/fdisk -l |
确认磁盘新增空间 |
| LVM 扩展 | lvextend+xfs_growfs |
扩展逻辑卷和文件系统 |
| EXT4 扩展 | resize2fs |
扩展 EXT4 分区 |
| 停止 Docker | systemctl stop docker |
防止迁移时数据冲突 |
| 数据迁移 | rsync |
保留原有镜像和容器 |
| 修改配置 | daemon.json设置 data-root |
切换存储目录 |
| 启动验证 | docker info |
确认新目录生效 |
四、总结
在 CentOS7 虚拟机上,硬盘扩容通常结合 虚拟层扩容 + LVM 或文件系统扩展来完成。而 Docker 默认目录迁移则依赖 停止服务、同步数据、修改配置三步。两者结合后,不仅能解决磁盘空间不足问题,还能让 Docker 存储更加灵活和高效。🚀
要不要我再给你一份 “Docker 存储迁移到新硬盘挂载点的最佳实践方案”(包含挂载新磁盘、分区、挂载 /data 并绑定到 Docker)?这样比仅在系统盘扩容更专业。