docker 删除镜像文件

本文介绍了如何在Docker容器中管理和清理过多镜像,包括查看镜像、移除镜像的方法,以及针对WSL2环境下数据卷空间不释放的问题,提供了解决方案,包括关闭DockerDesktop、压缩虚拟磁盘文件等步骤。

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

docker 容器里面太多镜像,D盘满了


四 查看和移除镜像

1 查看镜像

docker images

2  移除镜像命令

docker rmi '镜像名称'   # 只输入前四位即可

五 实际有效操作

  • 清除所有不使用的资源
docker system prune

这个命令将会删除所有不使用的镜像、容器和数据卷等资源。

  • 清除所有未被标记的镜像
docker image prune -a

这个命令将会删除所有未被标记的镜像。

  • 清除所有未被使用的数据卷
docker volume prune

这个命令将会删除所有未被使用的数据卷。

  • 清除所有未被使用的网络
docker network prune

这个命令将会删除所有未被使用的网络。

六 查看容器占用

docker system df # 【查看docker容器占用命令】

七 针对删除所有镜像后仍然没有清理数据卷的情况

参考:【已解决】Windows 的 docker 删除容器后 WSL2 磁盘空间不释放的问题

原因:

很多同学拉取镜像使用一段时间后发现 C 盘快满了,把之前用过的镜像和容器删除,发现 WSL 挂载目录的虚拟磁盘大小没有变化,非常的奇怪。

其实,不同于 WSL1,WSL2 本质上是虚拟机,所以 Windows 会自动创建 vhdx 后缀的虚拟磁盘文件作为存储。这个 vhdx 后缀的虚拟磁盘文件特点是可以自动扩容,但是一般不会自动缩容。一旦有很多文件把它“撑大”,即使把这些文件删除它也不会自动“缩小”。所以删除文件后还需要我们手动进行压缩才能释放磁盘空间。

1 找到位置

如果你没更改挂载磁盘的位置,那他位置在 C:\Users\<你当前用户名>\AppData\Local\Docker\wsl\data\ext4.vhdx ,记下路径,后面要用到。

2 关闭 Docker Desktop

在任务栏右下角右键单击 Docker Desktop 图标关闭 Docker 桌面,选择退出 Docker 桌面,等一会 Docker 图标没了之后,就证明 Docker 完全关闭了,然后,打开命令提示符

wsl --list -v

3 压缩虚拟磁盘文件

在 PowerShell 中执行:

# 关闭 WSL2 中的 linux distributions
wsl --shutdown
# 运行管理计算机的驱动器的 DiskPart 命令
diskpart

会新打开一个叫 DiskPart 的命令窗口

在新打开的 DiskPart 命令窗口中执行:

# 选择虚拟磁盘文件
select vdisk file="就是步骤7.1虚拟磁盘文件的路径"
# 压缩文件
compact vdisk
# 压缩完毕后卸载磁盘
detach vdisk

上述操作执行完毕,WSL2 删除文件后空出来的磁盘空间就被释放了,可以去虚拟磁盘文件的路径看到 ext4.vhdx 文件大小已经减小。最后打开 Docker Desktop 可以看到原来镜像还在,成功解决问题。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值