我在使用非常大的 docker buildx 缓存时遇到了这个问题,我不想修剪所有缓存,因为过滤器参数是 currently broken
PS> docker run -it --rm ubuntu:18.04 df -h
Filesystem Size Used Avail Use% Mounted on
overlay 252G 249G 0G 100% /
tmpfs 64M 0 64M 0% /dev
tmpfs 7.9G 0 7.9G 0% /sys/fs/cgroup
shm 64M 0 64M 0% /dev/shm
/dev/sdd 252G 249G 0G 100% /etc/hosts < this is the device we have to expand
记下哪个设备已满。这是您以后必须调整大小的磁盘。
使用diskpart扩展虚拟磁盘
在WSL2 下并按照Microsoft 在expanding the size of your vdisk 上的说明进行操作,这应该允许您扩展数据/isocache 挂载。
如果你和我一样,将你的 Docker vhdx 从 AppData/Packages 移出,并且它没有在 Docker 桌面 GUI 中列出,你可以在设置中找到它:
PS> cat $env:APPDATA\Docker\settings.json | Select-String dataFolder
"dataFolder": "D:\\DockerDesktop",
在wsl/data目录下找到ext4.vhdx文件(不是DockerDesktop.vhdx!)使用diskpart扩盘。
DISKPART> select vdisk file="D:\DockerDesktop\wsl\data\ext4.vhdx"
DiskPart successfully selected the virtual disk file.
DISKPART> detail vdisk
Device type ID: 0 (Unknown)
Vendor ID: {00000000-0000-0000-0000-000000000000} (Unknown)
State: Added
Virtual size: 256 GB
Physical size: 252 GB
Filename: D:\DockerDesktop\wsl\data\ext4.vhdx
Is Child: No
Parent Filename:
Associated disk#: Not found.
要扩展到 512 GB,请以 MB (512000) 为单位输入大小并退出 diskpart
DISKPART> expand vdisk maximum=512000
DISKPART> exit
在 WSL 中展开
要允许 Docker 使用额外空间,请启动您的 WSL2 发行版。你不需要为此使用 docker(这是我个人有点困惑的地方)
PS> wsl
user@WSL2:/mnt/c/Users/user$ sudo mount -t devtmpfs none /dev
user@WSL2:/mnt/c/Users/user$ mount | grep ext4
/dev/sdb on / type ext4 (rw,relatime,discard,errors=remount-ro,data=ordered)
/dev/sdd on /mnt/wsl/docker-desktop-data/isocache type ext4 (rw,relatime,discard,errors=remount-ro,data=ordered)
isocache 位于/dev/sdd(与之前的完整磁盘匹配)。运行 resize2fs 并使用 sizetype 后缀的新尺寸
sudo resize2fs /dev/<DEVICE> 512000M
检查您是否还有更多空间!
docker run -it --rm ubuntu:18.04 df -h
Filesystem Size Used Avail Use% Mounted on
overlay 492G 249G 220G 54% /
tmpfs 64M 0 64M 0% /dev
tmpfs 7.9G 0 7.9G 0% /sys/fs/cgroup
shm 64M 0 64M 0% /dev/shm
/dev/sdd 492G 249G 220G 54% /etc/hosts