docker删除镜像和容器后,磁盘空间未释放

用下列命令:

docker container prune -f
docker image prune -f
docker volume prune -f
它们将释放被停止容器、悬空图像和悬空卷使用的空间

内容概要:本文主要介绍了在 Windows Docker Desktop 中遇到的问题——删除容器未释放相应存储空间。作者遇到了删除大量容器后的磁盘空间占用并未得到有效清除的情况。在Docker系统上查看磁盘占用情况前后对比,显示删除后的可回收量与实际变化差异巨大,其中镜像只收回少量空间,而容器释放几乎等于原先全部占用的空间但未能成功被物理磁盘感知并恢复到可用状态。此外,本地卷构建缓存没有明显的变动或可以回收的内容。最终指出,针对 Docker 在Windows下生成的一个名为docker_data.vhdx的大尺寸硬盘虚拟磁盘文件,使用PowerShell进入特定目录通过Optimize-VHD命令尝试对其优化来解决问题。 适用人群:有一定计算机基础,尤其是那些已经在使用或者打算使用Docker Desktop于Windows操作系统上面工作的技术人员。 使用场景及目标:帮助用户理解在Docker Desktop环境中进行容器管理时可能出现的特殊存储相关问题及其解决方法;避免因为盲目地增删容器而导致不必要的数据风险;指导遇到同类情况的人采取正确有效的措施应对,如采用适当的命令去清理或压缩关联的VHD(Virtual Hard Disk)虚拟磁盘。 其他说明:文档中还提及由于不当操作造成的某些容器丢失的问题,这提醒使用者应提高小心谨慎度,在做删除等关键操作前考虑做好备份或者充分确认当前操作是否为最优选择。此外,提供的解决办法适用于有管理员权限并且能够运行PowerShell命令环境下的个人或团队。
### 解决Windows上Docker删除镜像磁盘空间未被释放的问题 #### 检查并停止后台运行的容器 为了确保能够安全地移除不再需要的镜像,在尝试删除之前,先要确认没有任何正在运行的容器依赖于这些镜像。可以通过如下命令来获取当前所有活动中的容器列表: ```bash docker ps -a ``` 对于那些处于退出状态但仍占用资源的容器,应该先将其彻底清除掉。如果存在不需要的容器,则可通过`docker rm <ContainerID>`指令逐一去除它们。 #### 清理挂载的数据卷 当处理完所有的容器之后,还需要关注由已终止的服务创建的数据卷。即使关联着该服务的容器已经被销毁,其对应的数据卷可能仍然存在于系统之中。利用下面这条语句可以罗列出来自各个项目的匿名或命名型持久化存储单元: ```bash docker volume ls ``` 针对无用的数据卷,可采用批量清理的方式——即借助`docker system prune -f --volumes`这一组合参数实现自动化清扫过程[^1]。 #### 正确卸载与重新加载镜像 在准备永久性地从主机中抹去特定版本的应用程序映射前,建议再次验证目标对象确实不在任何地方被引用到。完成上述核查工作以后,就可以放心大胆地执行实际意义上的“擦除动作”。具体来说就是运用`docker rmi <ImageID>`语法结构来进行指定项的剔除了;而要是碰上了因为某些原因无法直接干掉的情况(比如有多个标签指向同一份实体),不妨试着追加选项`-f`强制覆盖默认行为。 值得注意的是,在WSL2环境下,即便完成了以上步骤,有时仍需手动调整底层Linux子系统的文件系统配置才能让物理层面真正腾出可用容量。此时应当参照官方文档指导或是社区分享的经验贴实施进一步优化措施[^2]。 #### 启动自动化的垃圾回收机制 为了让整个流程更加简便高效,还可以考虑开启定时任务安排周期性的维护作业。例如,编辑Docker守护进程配置文件(通常位于`C:\ProgramData\Docker\config\daemon.json`位置附近),加入类似于这样的片段用于激活内置GC功能: ```json { "features": {"live-restore": true}, "data-root": "E:\\docker-data", "storage-driver": "overlay2", "max-concurrent-downloads": 3, "registry-mirrors": ["https://mirror.gcr.io"], "experimental": false, "builder": { "gc": { "defaultKeepStorage": "20GB" } } } ``` 重启服务使更改生效后,就能享受到更为智能化的空间管理体验了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值