Docker "Phình Bụng" & Lỗi File .VHDX Không Chịu Thu Nhỏ: Hướng Dẫn Xử Lý Triệt Để
CoderToDataCoderToData
·3 tháng 3, 2026·DevOps & Hạ tầng

Docker "Phình Bụng" & Lỗi File .VHDX Không Chịu Thu Nhỏ: Hướng Dẫn Xử Lý Triệt Để

ổ đĩa "chật chội"
ổ đĩa "chật chội"

Docker “phình bụng” là chuyện rất hay gặp đối với anh em lập trình viên. Ảnh build cũ, container stop, volume rác… tích tụ lâu ngày sẽ khiến ổ cứng báo đỏ ngay lập tức. Nếu bạn đang đối mặt với tình trạng "Disk Full", hãy làm theo các bước từ an toàn đến "mạnh tay" dưới đây.

1. Kiểm tra "thủ phạm" đang chiếm dung lượng

Trước khi dọn dẹp, bạn cần soi rõ xem thành phần nào đang ngốn dung lượng nhất bằng lệnh:

docker system df

Bạn sẽ thấy các thông số về: Images (Ảnh build), Containers, Local Volumes và đặc biệt là Build Cache.

Câu lệnh kiểm tra volumes, image, container, build cache
Câu lệnh kiểm tra volumes, image, container, build cache

2. Các bước dọn rác Docker an toàn

Dọn dẹp Container và Image cũ

Xóa các container đã dừng và network không dùng đến:

docker container prune

Xóa các image không còn được sử dụng (dangling images):

docker image prune
Dọn Build Cache (Thủ phạm chính)

Nếu bạn thường xuyên build dự án (Next.js, Laravel, Node.js), Build Cache có thể lên tới hàng chục GB. Để giải phóng ngay:

docker builder prune

Hoặc dọn sạch toàn bộ cache (mạnh tay hơn):

docker builder prune -a

3. Xử lý triệt để lỗi ổ đĩa không giảm trên Windows (WSL2)

Một vấn đề gây ức chế là dù bạn đã dọn dẹp bên trong Docker, dung lượng ổ đĩa vật lý (ổ C hoặc D) vẫn không giảm. Đó là do file đĩa ảo .vhdx của WSL2 chỉ có thể nở ra chứ không tự co lại.

Cách 1: Thu nhỏ file .vhdx (Dành cho Windows Pro/Enterprise)

Nếu bạn có Hyper-V, hãy tắt Docker hoàn toàn và chạy lệnh sau trong PowerShell (Quyền Admin):

wsl --shutdown

Optimize-VHD -Path "D:\Docker Data\...\disk\docker_data.vhdx" -Mode Full
Lệnh Optimize-VHD optimize size
Lệnh Optimize-VHD optimize size

Lưu ý: Nếu gặp lỗi "Optimize-VHD is not recognized", nghĩa là bạn đang dùng Windows Home. Hãy dùng Cách 2.

Cách 2: Reset Disk Image (Đơn giản nhất, dùng được cho Windows Home)

Đây là cách nhanh nhất để "làm mới" hoàn toàn ổ đĩa Docker:

  1. Mở Docker Desktop -> Settings -> Resources.
  2. Tìm mục Disk image location.
  3. Chọn Clean / Reset Disk Image.

Cách này sẽ xóa sạch các image/container hiện tại (không mất code dự án) và giải phóng 100% dung lượng ảo.

Bạn cần tối ưu Dockerfile? Nếu bạn đang dùng Next.js, Laravel hay Fullstack và muốn build nhanh, nhẹ hơn, hãy để lại bình luận phía dưới nhé!

Discussion

Please sign in to leave a comment.
No comments yet. Be the first to start the discussion!