docker

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > 云和虚拟化 > docker > Docker加载镜像no space left on device

Docker加载镜像时出现 “no space left on device” 错误的解决方法

作者:Asia-Lee

在 Docker 使用过程中,“no space left on device” 错误是常见的磁盘空间不足问题,本文将结合实战操作,详细介绍该问题的排查与解决步骤,帮助开发者快速定位并修复问题,需要的朋友可以参考下

一、磁盘空间与 inode 使用情况检查

1. 检查磁盘空间占用

df -h /var/lib/docker

2. 检查 inode 使用情况

df -i /var/lib/docker

二、Docker 无用资源清理

1. 自动清理未使用资源

# 交互式清理,会提示确认删除停止的容器、悬空镜像、未使用网络
docker system prune
# 强制全量清理(生产环境谨慎)
docker system prune -a --volumes

2. 手动精准清理

如果自动清理不彻底,手动删除特定镜像或容器:

# 列出所有镜像
docker images -a
# 删除指定镜像
docker rmi <镜像ID>
# 列出并删除已停止的容器
docker ps -a
docker rm <容器ID>

三、清理 Docker 临时文件

# 警告:操作前停止Docker服务
systemctl stop docker
rm -rf /var/lib/docker/tmp/*
systemctl start docker

四、迁移 Docker 存储路径(长期方案)

# 停止服务
systemctl stop docker
# 创建新存储路径
mkdir /data/docker  # 替换为实际路径
# 修改Docker配置
echo '{ "data-root": "/data/docker" }' > /etc/docker/daemon.json
# 迁移现有数据(可选)
rsync -aqxP /var/lib/docker/ /data/docker  # 保留权限和链接
# 重启docker
systemctl start docker

五、扩展磁盘空间(高级操作)

若分区容量不足:

挂载新磁盘

新增磁盘分区

fdisk /dev/sdb  # 创建新分区并格式化为ext4/xfs
mount /dev/sdb1 /var/lib/docker
echo "/dev/sdb1 /var/lib/docker ext4 defaults 0 0" >> /etc/fstab

六、实战操作示例

# 检查空间
df -h /var/lib/docker

# 清理Docker
docker system prune -a --volumes

# 重新加载镜像
docker load -i image-search-v1.tar

七、注意事项

以上就是Docker加载镜像时出现 “no space left on device” 错误的解决方法的详细内容,更多关于Docker加载镜像no space left on device的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文