MariaDB 資料庫的 docker container 出現了這個錯誤:
之前因為硬碟容量不夠,所以我把 Docker 的儲存位置從 C 槽 移動到 D 槽
註:可參考這篇: 變更 Docker Desktop 儲存位置 (Windows)
所以現在硬碟空間是夠的阿,還有 1TB 多,但是為什麼會出現容量不足的問題呢?
找了半天,發現空間不夠是因為 windows docker 是裝在wsl,有最大空間為 256 GB 的限制
把解決的過程分享一下
註: 如果有依照上一篇移動過路徑的話,就要要依照變更後的路徑
以管理員權限打開 Windows 指令視窗
輸入:diskpart,按下 Enter 後指令前面會變成 「DISKPART>」字樣
選取 Docker wsl 檔案:
註:需要替換成剛剛找到的路徑
輸出:
列出 vdisk 資訊:
查看一下輸出資訊
設定大小為 512 GB:
註:單位是 MB,例如 256 GB 就是 256000
執行結果:
執行完成後關閉指令視窗
開啟 windows 下的 linux 指令視窗
查看顯示檔案系統上的可用空間:
找到 docker-desktop-data 紀錄這一行最左邊的路徑
在本範例中,就是第 16 行,路徑為 /dev/sdd
註:帶入剛剛的檔案路徑
2022-05-05 8:59:11 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait
2022-05-05 8:59:11 0 [ERROR] InnoDB: preallocating 12582912 bytes for file ./ibtmp1 failed with error 28
2022-05-05 8:59:11 0 [ERROR] InnoDB: Could not set the file size of './ibtmp1'. Probably out of disk space
2022-05-05 8:59:11 0 [ERROR] InnoDB: Unable to create the shared innodb_temporary
2022-05-05 8:59:11 0 [ERROR] InnoDB: Plugin initialization aborted with error Generic error
之前因為硬碟容量不夠,所以我把 Docker 的儲存位置從 C 槽 移動到 D 槽
註:可參考這篇: 變更 Docker Desktop 儲存位置 (Windows)
所以現在硬碟空間是夠的阿,還有 1TB 多,但是為什麼會出現容量不足的問題呢?
找了半天,發現空間不夠是因為 windows docker 是裝在wsl,有最大空間為 256 GB 的限制
把解決的過程分享一下
解除 windows docker 256 GB 的限制
先找到 Docker wsl 的儲存位置,預設是在 %LOCALAPPDATA%/Docker/wsl/data/ext4.vhdx註: 如果有依照上一篇移動過路徑的話,就要要依照變更後的路徑
C:\Users\ruyut\AppData\Local\Docker\wsl/
`-- data/
`-- ext4.vhdx
以管理員權限打開 Windows 指令視窗
輸入:diskpart,按下 Enter 後指令前面會變成 「DISKPART>」字樣
diskpart
選取 Docker wsl 檔案:
註:需要替換成剛剛找到的路徑
Select vdisk file="C:\Users\ruyut\AppData\Local\Docker\wsl\ext4.vhdx"
輸出:
Select vdisk file="C:\Users\ruyut\AppData\Local\Docker\wsl\ext4.vhdx"
DiskPart 已成功選取該虛擬磁碟檔案。
列出 vdisk 資訊:
detail vdisk
查看一下輸出資訊
detail vdisk
裝置類型識別碼: 0 (不明)
廠商識別碼: {00000000-0000-0000-0000-000000000000} (不明)
狀態: 已新增
虛擬大小: 256 GB
實體大小: 236 GB
檔案名稱: C:\Users\ruyut\AppData\Local\Docker\wsl\ext4.vhdx
子系: 否
父檔案名稱:
找不到關聯的 disk#:。
設定大小為 512 GB:
註:單位是 MB,例如 256 GB 就是 256000
expand vdisk maximum=512000
執行結果:
expand vdisk maximum=512000
100 % 已完成
DiskPart 已成功解壓縮虛擬磁碟檔案。
執行完成後關閉指令視窗
開啟 windows 下的 linux 指令視窗
查看顯示檔案系統上的可用空間:
df -h
找到 docker-desktop-data 紀錄這一行最左邊的路徑
在本範例中,就是第 16 行,路徑為 /dev/sdd
df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sdb 492G 1.3G 468G 1% /
none 16G 363M 16G 3% /mnt/wsl
tools 700G 529G 171G 76% /init
none 16G 0 16G 0% /dev
none 16G 4.0K 16G 1% /run
none 16G 0 16G 0% /run/lock
none 16G 0 16G 0% /run/shm
none 16G 0 16G 0% /run/user
tmpfs 16G 0 16G 0% /sys/fs/cgroup
drivers 700G 529G 171G 76% /usr/lib/wsl/drivers
lib 700G 529G 171G 76% /usr/lib/wsl/lib
drvfs 700G 529G 171G 76% /mnt/c
drvfs 1.9T 1.1T 879G 54% /mnt/d
/dev/sdd 251G 239G 12K 100% /mnt/wsl/docker-desktop-data/isocache
none 16G 12K 16G 1% /mnt/wsl/docker-desktop/shared-sockets/host-services
/dev/sdc 251G 121M 239G 1% /mnt/wsl/docker-desktop/docker-desktop-user-distro
/dev/loop0 353M 353M 0 100% /mnt/wsl/docker-desktop/cli-tools
跑 sudo lsblk確定哪個 Linux 設備與虛擬磁盤相關聯:
調整調整檔案系統大小:
註:帶入剛剛的檔案路徑
sudo resize2fs /dev/sdc 512000M
留言
張貼留言
如果有任何問題、建議、想說的話或文章題目推薦,都歡迎留言或來信: a@ruyut.com