Dokumentasi ini mencakup:
- Backup
- Recovery
- Pindah Docker WSL2 ke
G:\WSL - Cleanup
- Compact size
- Preventif agar disk
C:tidak penuh lagi
Untuk Docker Desktop dengan backend WSL2.
1. Struktur Folder yang Disarankan
Gunakan struktur berikut:
G:\WSL\
├── backup\
├── docker-desktop-data\
├── temp\
└── ubuntu\
Keterangan:
backup→ backup TAR/VHDXdocker-desktop-data→ storage Docker aktiftemp→ file sementaraubuntu→ distro Linux lain (opsional)
2. Lokasi Default Docker WSL
Secara default, Docker menyimpan data di:
C:\Users\<user>\AppData\Local\Docker\wsl\disk\docker_data.vhdx
File ini berisi:
- Images
- Containers
- Volumes
- Build cache
3. Cek Status Docker WSL
Cek distro:
wsl -l -vBiasanya muncul:
docker-desktopdocker-desktop-data
Cek ukuran VHDX:
Get-Item "$env:LOCALAPPDATA\Docker\wsl\disk\docker_data.vhdx" |
Select Name,@{Name="SizeGB";Expression={[math]::Round($_.Length/1GB,2)}}Cek penggunaan Docker:
docker system df4. Backup Docker WSL (WAJIB)
Tutup Docker Desktop Quit dari tray icon.
Shutdown WSL:
wsl --shutdownBuat folder backup:
mkdir G:\WSL
mkdir G:\WSL\backup5. Backup VHDX Manual (Paling Aman)
Copy:
Dari: C:\Users\<user>\AppData\Local\Docker\wsl\disk\docker_data.vhdx
Ke: G:\WSL\backup\docker_data_backup.vhdx
PowerShell:
Copy-Item "$env:LOCALAPPDATA\Docker\wsl\disk\docker_data.vhdx" "G:\WSL\backup\docker_data_backup.vhdx"⚠️ Penting: Jangan eksperimen sebelum backup selesai.
6. Backup Resmi via Export
Export Docker WSL:
wsl --export docker-desktop-data G:\WSL\backup\docker-desktop-data.tarKeuntungan:
- Portable
- Aman
- Bisa di-import ulang
7. Recovery Jika Pernah Unregister
Kondisi:
Jika pernah menjalankan wsl --unregister docker-desktop-data tetapi file VHDX masih ada.
Recovery Aman:
-
Rename VHDX lama: Dari
docker_data.vhdxmenjadidocker_data_backup.vhdx -
Jalankan Docker Desktop: Biarkan Docker membuat
docker-desktopdandocker-desktop-databaru. -
Shutdown lagi:
wsl --shutdown
-
Replace disk baru: Rename
docker_data.vhdxmenjadidocker_data_new.vhdx -
Copy backup lama kembali: Ubah kembali
docker_data_backup.vhdxmenjadidocker_data.vhdx -
Jalankan Docker lagi dan test:
docker ps -a
docker images
8. Pindahkan Docker WSL ke G:\WSL
Metode Aman (Recommended):
- Shutdown:
wsl --shutdown
- Export:
wsl --export docker-desktop-data G:\WSL\docker-desktop-data.tar
- Unregister:
wsl --unregister docker-desktop-data
- Import ke G:
wsl --import docker-desktop-data G:\WSL\docker-desktop-data G:\WSL\docker-desktop-data.tar --version 2
-
Jalankan Docker Desktop
-
Verifikasi:
wsl -l -v
docker ps
docker images
9. Hapus File TAR Setelah Aman
del G:\WSL\docker-desktop-data.tar10. Mengecilkan Docker WSL
Cleanup Docker:
- Aman standar:
docker system prune
- Cleanup agresif:
docker system prune -a
- Cleanup volume:
docker system prune -a --volumes
⚠️ Hati-hati: Database dan persistent storage bisa terhapus.
- Cleanup build cache:
docker builder prune -a
11. Compact VHDX
- Shutdown:
wsl --shutdown
- Compact modern:
Optimize-VHD -Path "G:\WSL\docker-desktop-data\ext4.vhdx" -Mode Full
- Jika Optimize-VHD tidak ada, jalankan:
diskpart
Lalu di dalam diskpart:
select vdisk file="G:\WSL\docker-desktop-data\ext4.vhdx"
attach vdisk readonly
compact vdisk
detach vdisk
exit
12. Preventif Agar Disk Tidak Cepat Penuh
A. Simpan Docker di G:\WSL
Jangan di drive C:.
B. Hindari Dataset di Volume Docker
- ❌ Buruk:
docker volume create dataset - ✅ Lebih baik:
-v G:\dataset:/dataset
C. Cleanup Rutin Seminggu sekali:
docker system prune -a
docker builder prune -aD. Hindari Banyak CUDA Image Lama
- Cek:
docker image ls - Hapus:
docker rmi IMAGE_ID
E. Gunakan .dockerignore
Contoh .dockerignore:
node_modules
.git
dataset
logs
cache
13. Checklist Aman Sebelum Eksperimen
SELALU:
- ✅
wsl --shutdown - ✅ Backup dulu
- ✅ Copy VHDX penting
- ✅ Cek free space
- ✅ Test
docker pssetelah recovery
JANGAN:
- ❌ Delete
.vhdxlangsung - ❌ Unregister tanpa backup
- ❌ Compact saat Docker aktif
- ❌ Force close Docker saat export/import
14. Command Penting Ringkas
- Cek distro:
wsl -l -v
- Shutdown:
wsl --shutdown
- Export:
wsl --export docker-desktop-data G:\WSL\backup.tar
- Import:
wsl --import docker-desktop-data G:\WSL\docker-desktop-data G:\WSL\backup.tar --version 2
- Cleanup:
docker system prune -a
- Compact:
Optimize-VHD -Path "G:\WSL\docker-desktop-data\ext4.vhdx" -Mode Full