Docker Disk Diminisher

https://github.com/duyvo26/Docker-Disk-Diminisher

 

Compact Docker WSL VHDX File on Windows

 

Đường dẫn mặc định đến file .vhdx:

C:\Users\Admin\AppData\Local\Docker\wsl\disk\docker_data.vhdx

Script này được thiết kế để thu gọn (compact) tệp VHDX mà Docker sử dụng trong Windows Subsystem for Linux (WSL). Các bước thực hiện:

🔧 Tác vụ chính:

 

  1. Tắt toàn bộ các phiên bản WSL đang chạy.
  2. Kiểm tra xác nhận tất cả đã dừng.
  3. Sử dụng diskpart để thu gọn file VHDX.
  4. Xoá file tạm được tạo trong quá trình chạy.

✅ Yêu cầu

 

  • Có quyền Administrator.
  • Đã cài đặt Docker và WSL.
  • Đường dẫn file .vhdx theo mặc định là:
    C:\Users\Admin\AppData\Local\Docker\wsl\disk\docker_data.vhdx
    Nếu bạn lưu file ở vị trí khác, hãy thay đổi lại đường dẫn trong script.

▶️ Cách sử dụng

 

  1. Mở Notepad hoặc trình soạn thảo văn bản bất kỳ.
  2. Dán đoạn script sau vào:
@echo off
REM Shutdown all WSL instances
wsl --shutdown

REM Verify all instances are stopped
wsl.exe --list --verbose

REM Start diskpart and execute commands
echo select vdisk file="C:\Users\Admin\AppData\Local\Docker\wsl\disk\docker_data.vhdx" > diskpart_script.txt
echo compact vdisk >> diskpart_script.txt

diskpart /s diskpart_script.txt

REM Clean up
del diskpart_script.txt

echo VHDX file has been compacted.
pause
  1. Lưu với phần mở rộng .bat, ví dụ: compact_vhdx.bat.
  2. Nhấn chuột phải vào file .bat và chọn Run as administrator.

📝 Ghi chú

 

  • Script sử dụng công cụ dòng lệnh diskpart để thực hiện thao tác nén file VHDX.
  • Đảm bảo không có tiến trình nào khác đang sử dụng file VHDX khi script chạy.
  • Cuối cùng script sẽ dừng lại với lệnh pause để bạn có thể xem kết quả.

❗ Khắc phục sự cố

 

  • Nếu không thu gọn được VHDX:
    • Đảm bảo toàn bộ WSL instances đã được tắt hoàn toàn.
    • Kiểm tra lại đường dẫn tới file .vhdx.
    • Xem các thông báo lỗi hiện ra trong cửa sổ dòng lệnh để biết thêm thông tin

Viết một bình luận