ano*_*s1a 7 docker windows-subsystem-for-linux wsl-2
我提交了一个现有的 Docker 容器来创建一个新的镜像,但是提交的镜像太大了(原始镜像是 3+GB,并且在容器中只安装了一些额外的东西,提交的镜像是 8+GB)。
我空间不足,所以我决定删除提交的图像,但即使删除提交的图像,我的磁盘空间也没有增加。然而,当我运行时,docker system df它只显示应该使用原始图像和容器的空间(我只有一个图像和一个容器)。
有什么方法可以让我释放空间,我确信我删除的图像仍然以某种方式占用?(作为参考,我在一个小时内创建了图像,然后将其删除,并且一直在监视我的可用空间,所以我很确定是这个而不是其他占用空间的东西。)
此外,我正在使用 Docker Desktop for Windows 与 WSL2 集成,因此通过/var/lib/docker检查磁盘使用情况来检查 Docker 的磁盘使用情况并不容易。
小智 43
如果尝试执行 Optimize-VHD 时出现错误:
Optimize-VHD : The term 'optimize-vhd' is not recognized as the name of a cmdlet
Run Code Online (Sandbox Code Playgroud)
您可以使用diskpart:
wsl --shutdown
diskpart
select vdisk file="C:\Users\{YourUser}\AppData\Local\Docker\wsl\data\ext4.vhdx"
attach vdisk readonly
compact vdisk
detach vdisk
exit
Run Code Online (Sandbox Code Playgroud)
eti*_*tix 20
此代码可用作提升的PowerShell 会话的快速修复。我必须使用pwsh,因为它可以在没有临时文件的情况下与diskpart正常工作。
docker system prune -a --volumes
net stop com.docker.service
taskkill /IM "docker.exe" /F
taskkill /IM "Docker Desktop.exe" /F
wsl --shutdown
((@"
select vdisk file="%LOCALAPPDATA%\Docker\wsl\data\ext4.vhdx"
attach vdisk readonly
compact vdisk
detach vdisk
exit
"@
)|diskpart)
net start com.docker.service
. "C:\Program Files\Docker\Docker\Docker Desktop.exe"
Run Code Online (Sandbox Code Playgroud)
Sch*_*ltz 15
我使用这些命令将桌面图像从 35GB 缩小到 1GB
(在 Windows 10 中,docker 版本 19.03.13)
docker system prune -a
docker volume rm $(docker volume ls -q -f dangling=true)
确保 HyperV 已打开
%windir%\System32\mmc.exe "%windir%\System32\virtmgmt.msc" 或在 win 搜索中输入 Hyper-V
在GUI中优化磁盘>转到VM,并检查磁盘
Optimize-VHD -Path "C:\ProgramData\DockerDesktop\vm-data\DockerDesktop.vhdx" -Mode Full
现在我有 34+GB 的可用磁盘空间
单击标题中的错误图标,然后单击清除/清除数据时,您可以清除数据。
小智 6
我使用以下步骤来清理泊坞窗空间。
在 Windows 命令提示符下执行“docker system prune -f”(它说释放 45GB。但是,我能够看到 6GB)。
打开 Docker 桌面应用程序。
导航到“故障排除”菜单并单击“清理/清除数据”按钮。
请注意,这将清除 Docker 中的所有数据。
由于您使用的是 Windows 并在桌面版 docker 中运行,因此您实际上是在 VM 中运行 docker。然后这取决于磁盘映像大小的设置,通常虚拟磁盘会扩展以填充该空间。
您可以缩小磁盘映像:
停止 docker 桌面
打开一个管理 powershell 终端
运行Optimize-VHD -Path "C:\ProgramData\DockerDesktop\vm-data\DockerDesktop.vhdx" -Mode Full其中路径是 docker 桌面设置 > 资源 > 高级 > 磁盘映像位置中记录的路径。
启动 docker 桌面
这应该会缩小 docker 虚拟机。
| 归档时间: |
|
| 查看次数: |
8189 次 |
| 最近记录: |