Dokumentasi ini mencakup:

Untuk Docker Desktop dengan backend WSL2.


1. Struktur Folder yang Disarankan

Gunakan struktur berikut:

G:\WSL\
├── backup\
├── docker-desktop-data\
├── temp\
└── ubuntu\

Keterangan:


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:


3. Cek Status Docker WSL

Cek distro:

wsl -l -v

Biasanya muncul:

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:


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:

  docker system prune
  
  docker system prune -a
  
  docker system prune -a --volumes
  

⚠️ Hati-hati: Database dan persistent storage bisa terhapus.

  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

C. Cleanup Rutin Seminggu sekali:

docker system prune -a
docker builder prune -a

D. Hindari Banyak CUDA Image Lama

E. Gunakan .dockerignore Contoh .dockerignore:

node_modules
.git
dataset
logs
cache

13. Checklist Aman Sebelum Eksperimen

SELALU:

JANGAN:


14. Command Penting Ringkas

  wsl -l -v
  
  wsl --shutdown
  
  wsl --export docker-desktop-data G:\WSL\backup.tar
  
  wsl --import docker-desktop-data G:\WSL\docker-desktop-data G:\WSL\backup.tar --version 2
  
  docker system prune -a
  
  Optimize-VHD -Path "G:\WSL\docker-desktop-data\ext4.vhdx" -Mode Full