Postingan

Dokumentasi Lengkap Docker WSL2 ke G:\WSL

Panduan lengkap mengenai backup, recovery, pemindahan Docker WSL2 ke drive lain, cleanup, dan optimasi agar disk C tidak penuh.

Dokumentasi Lengkap Docker WSL2 ke G:\WSL

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:

1
2
3
4
5
G:\WSL\
├── backup\
├── docker-desktop-data\
├── temp\
└── ubuntu\

Keterangan:

  • backup → backup TAR/VHDX
  • docker-desktop-data → storage Docker aktif
  • temp → file sementara
  • ubuntu → distro Linux lain (opsional)

2. Lokasi Default Docker WSL

Secara default, Docker menyimpan data di:

1
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 -v

Biasanya muncul:

  • docker-desktop
  • docker-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 df

4. Backup Docker WSL (WAJIB)

Tutup Docker Desktop Quit dari tray icon.

Shutdown WSL:

wsl --shutdown

Buat folder backup:

mkdir G:\WSL
mkdir G:\WSL\backup

5. 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.tar

Keuntungan:

  • 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:

  1. Rename VHDX lama: Dari docker_data.vhdx menjadi docker_data_backup.vhdx

  2. Jalankan Docker Desktop: Biarkan Docker membuat docker-desktop dan docker-desktop-data baru.

  3. Shutdown lagi:

   wsl --shutdown
   
  1. Replace disk baru: Rename docker_data.vhdx menjadi docker_data_new.vhdx

  2. Copy backup lama kembali: Ubah kembali docker_data_backup.vhdx menjadi docker_data.vhdx

  3. Jalankan Docker lagi dan test:

   docker ps -a
   docker images
   

8. Pindahkan Docker WSL ke G:\WSL

Metode Aman (Recommended):

  1. Shutdown:
   wsl --shutdown
   
  1. Export:
   wsl --export docker-desktop-data G:\WSL\docker-desktop-data.tar
   
  1. Unregister:
   wsl --unregister docker-desktop-data
   
  1. Import ke G:
   wsl --import docker-desktop-data G:\WSL\docker-desktop-data G:\WSL\docker-desktop-data.tar --version 2
   
  1. Jalankan Docker Desktop

  2. Verifikasi:

   wsl -l -v
   docker ps
   docker images
   

9. Hapus File TAR Setelah Aman

del G:\WSL\docker-desktop-data.tar

10. 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

  1. Shutdown:
   wsl --shutdown
   
  1. Compact modern:
   Optimize-VHD -Path "G:\WSL\docker-desktop-data\ext4.vhdx" -Mode Full
   
  1. 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 -a

D. Hindari Banyak CUDA Image Lama

  • Cek: docker image ls
  • Hapus: docker rmi IMAGE_ID

E. Gunakan .dockerignore Contoh .dockerignore:

1
2
3
4
5
node_modules
.git
dataset
logs
cache

13. Checklist Aman Sebelum Eksperimen

SELALU:

  • wsl --shutdown
  • ✅ Backup dulu
  • ✅ Copy VHDX penting
  • ✅ Cek free space
  • ✅ Test docker ps setelah recovery

JANGAN:

  • ❌ Delete .vhdx langsung
  • ❌ 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
  
Postingan ini dilisensikan di bawah CC BY 4.0 oleh penulis.