docker启动失败,''No space left on device" 的一些事

本文记录了一次解决Docker启动失败的经历。问题出现在虚拟机磁盘空间不足导致Docker无法启动。通过使用du命令检查磁盘占用情况并清理不必要的文件后,成功解决了问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景

#systemctl restart docker

报出了docker启动失败

#journalctl -xe

查看启动日志


我的虚拟机没有空间留给docker了。

解决

# du -h --max-depth=1 /

深度查询后,果然整个硬盘被榨干净了


由于该虚拟机作为实验机使用,乱七八糟都往里面放。关键是我只分了20个G给这台虚拟机,马上删除一些不用的东西吧。

#systemctl restart docker 

正常运行了


### Docker保存镜像时磁盘空间不足解决方案 当遇到`docker save`命令执行失败并提示“No space left on device”的错误信息时,这通常意味着主机文件系统的可用存储容量不足以完成操作[^1]。为了有效处理这种情况,可以采取以下几个措施: #### 清理不必要的Docker对象 移除不再使用的容器能够释放大量占用的空间。通过下面两条指令来清除所有停止状态下的容器实例: ```bash docker rm $(docker ps -a -q) docker rm $(docker ps -qf status=exited) ``` 这些命令会强制删除处于终止(`Exited`)状态以及之前创建过但当前并未启动的所有容器实体[^3]。 #### 删除悬空镜像和其他资源 除了清理闲置的容器外,还应该考虑去除那些没有被任何现有容器引用到的所谓“悬空”(dangling)镜像。利用如下脚本一次性批量卸载它们连同其他冗余数据一起: ```bash docker system prune -af --volumes ``` 该选项不仅清除了无用的网络配置、构建缓存等内容,而且还会一并回收挂载卷所占据的位置,从而进一步腾出更多可用空间给新的镜像导出活动使用[^2]。 #### 扩展宿主机分区大小或迁移/var/lib/docker路径 如果经过上述优化之后仍然面临严重的存储瓶颈,则可能需要评估是否要调整所在Linux发行版下实际分配给根目录(`/`)或者特定于Docker服务的数据存放位置(默认位于`/var/lib/docker`)对应的物理硬盘分区间隙;亦或是借助符号链接的方式把后者重定位至另一处拥有更大剩余量级的新地址上继续开展后续的工作流程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值