记一次使用 docker 时遇到 no space left on device 问题的解决

no space left on device

使用docker部署服务结果报了上面这个错,使用 df -h 命令查看发现是/dev/mapper/centos-root 没有可用容间了。
这是清理后的

解决办法:
切换到根目录下使用上面命令查看占用磁盘空间最大的目录

du -h -x --max-depth=1

在这里插入图片描述
找到占用空间最大的目录,打开,然后重复上面的命令,直到找到占用最大的文件或目录,清理没用的东西就好了。

docker还提供了下面命令来清理没有正在运行容器的镜像

docker system prune

只不过我的问题是一个服务产生的大量的日志未被清除导致的,所以这次这个命令

### 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、付费专栏及课程。

余额充值