将 Docker的存储目录迁移到空间更大的磁盘
failed to register layer: write /opt/oracle/product/19c/dbhome_1/rdbms/admin/catfusrg.sql: no space left on device
系统磁盘空间不足,无法完成 Docker 镜像的拉取和解压。以下是排查和解决方法:
- 检查磁盘使用情况
df -h
重点查看:
-
/ 根目录
-
/var/lib/docker(Docker 的默认数据目录)
如果这些挂载点接近 100%,就需要清理空间。
- 清理 Docker 占用的空间
你可以尝试清理未使用的镜像、容器、网络和缓存层:
docker system prune -a
⚠️ 注意: 这会删除所有未使用的镜像和容器,请确认没有在运行中的重要容器。
- 查找大文件
你可以查找文件系统中占用大量空间的目录:
du -ahx / | sort -rh | head -n 20
也可以聚焦于 Docker 目录:
du -sh /var/lib/docker/*
- 考虑使用其他磁盘
如果你有多个挂载点或数据盘,可以将 Docker 的存储目录迁移到空间更大的磁盘,例如 /data:
mkdir -p /data/docker
systemctl stop docker
rsync -aP /var/lib/docker/ /data/docker/
然后修改 Docker 配置文件 /etc/docker/daemon.json:
{"data-root": "/data/docker"
}
重启 Docker:
systemctl start docker
- 再次拉取镜像
清理完空间后,再次运行:
docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/heartu41/oracle19c:latest