Mẹo: chuyển Docker WSL khỏi ổ C để tiết kiệm dung lượng
Giới thiệu
Trong quá trình phát triển phần mềm, Docker là một công cụ không thể thiếu đối với nhiều lập trình viên. Tuy nhiên, nếu bạn sử dụng Docker Desktop trên Windows (dựa trên WSL 2), bạn có thể gặp tình trạng ổ C nhanh chóng bị đầy mà không rõ lý do.
Thực tế là, Docker lưu toàn bộ image, volume và container vào một file ổ đĩa ảo .vhdx
nằm trên ổ C. Do đó, nếu bạn sử dụng Docker thường xuyên, file này có thể chiếm từ vài đến vài chục GB dung lượng.
Vì vậy, bài viết này sẽ hướng dẫn bạn cách chuyển dữ liệu Docker từ ổ C sang ổ D một cách an toàn và hiệu quả.
Docker lưu ở đâu?
Trước khi bắt đầu, bạn cần biết rằng Docker Desktop lưu dữ liệu mặc định trong file ext4.vhdx
nằm tại:
C:\Users\<user>\AppData\Local\Docker\wsl\data\
Cụ thể, đây là nơi Docker lưu toàn bộ dữ liệu cho docker-desktop-data
, và đây cũng là phần chiếm nhiều dung lượng nhất.
File ext4.vhdx chiếm dung lượng gần ~60GB
Liệt kê các Distro WSL đang có
Để biết chúng ta cần di chuyển những gì, hãy liệt kê tất cả các bản phân phối (distro) WSL đang được cài đặt.
Bạn có thể dùng lệnh sau để xem:
wsl --list --verbose
Liệt kê các distro WSL hiện tại, chú ý docker-desktop-data.
Bạn sẽ thấy một danh sách tương tự như trên hình. Hai distro quan trọng của Docker là docker-desktop và docker-desktop-data. Chúng ta sẽ di chuyển docker-desktop-data vì đây là nơi chứa toàn bộ dữ liệu của bạn.
Các bước chuyển sang ổ D
✅ Bước 1: Tắt Docker Desktop và WSL
Trước tiên, hãy đảm bảo Docker đã tắt hoàn toàn. Mở PowerShell với quyền admin và chạy:
wsl --shutdown
Tiếp theo, click chuột phải vào biểu tượng Docker trên taskbar và chọn “Quit Docker Desktop” để đảm bảo mọi tiến trình đều ngừng chạy.
✅ Bước 2: Export WSL docker-desktop-data
Tạo trước thư mục D:\WSL\
để chứa file export. Có thể đổi tên đường dẫn tùy bạn.
Sau đó, bạn cần export toàn bộ dữ liệu docker-desktop-data sang ổ D bằng lệnh sau:
wsl --export docker-desktop-data D:\WSL\docker-desktop-data.tar
Export file .tar nặng vài chục GB từ ổ C sang ổ D.
✅ Bước 3: Gỡ đăng ký WSL docker-desktop-data
Khi đã export xong, bạn có thể xóa WSL distro cũ để chuẩn bị cho bước import mới:
wsl --unregister docker-desktop-data
Sau khi lệnh này chạy xong, không gian trên ổ C của bạn sẽ được giải phóng.
⚠️ Lưu ý: bước này sẽ xóa toàn bộ dữ liệu image/container hiện tại. Hãy backup trước nếu cần.
✅ Bước 4: Import lại vào ổ D
Tiếp theo, hãy import lại dữ liệu từ file .tar vào vị trí mới trên ổ D:
wsl --import docker-desktop-data D:\WSL\docker-desktop-data D:\WSL\docker-desktop-data.tar --version 2
Giải thích lệnh trên:
D:\WSL\docker-desktop-data
là thư mục sẽ chứa file ổ đĩa ảo mới của bạn.D:\WSL\docker-desktop-data.tar
là file backup bạn đã tạo ở Bước 2.- Tùy chọn
--version 2
là bắt buộc để đảm bảo distro được import dưới dạng WSL 2.
Từ giờ, Docker sẽ dùng D:\WSL\docker-desktop-data
làm nơi lưu dữ liệu.
✅ Bước 5: Khởi động lại Docker Desktop
Cuối cùng, bạn hãy khởi động lại máy tính hoặc mở lại Docker Desktop như bình thường. Mọi dữ liệu và container sẽ được sử dụng từ ổ D.
Sau khi đã xác nhận mọi thứ hoạt động bình thường, bạn có thể xóa file D:\WSL\docker-desktop-data.tar
để tiết kiệm không gian.
Kết quả đạt được
- Trước hết, bạn sẽ giải phóng được từ 10~60 GB dung lượng ổ C nếu bạn dùng Docker thường xuyên.
- Bên cạnh đó, việc di chuyển không làm ảnh hưởng đến hiệu năng hoặc cấu hình của Docker.
- Ngoài ra, quy trình hoàn toàn đơn giản và không cần thay đổi cấu hình nâng cao.
Một số lưu ý thêm
- Tương tự, bạn có thể áp dụng cách này để chuyển các distro WSL khác như Ubuntu hoặc Debian… nếu muốn.
- Hơn nữa, với những image ít quan trọng, có thể xóa và pull lại sau khi move để nhẹ file .tar.
- Để an toàn, hãy backup container hoặc image quan trọng trước khi bắt đầu.
Tham khảo
Bài viết có tham khảo hướng dẫn từ:
Move Docker Desktop data distro out of system drive
Hãy cùng xem thêm các mẹo khác:
Tổng kết
Tóm lại, việc chuyển Docker WSL sang ổ D là một thủ thuật nhỏ nhưng hữu ích, giúp giải phóng dung lượng ổ C và giữ cho máy hoạt động mượt mà hơn. Đây là một trong nhiều cách để bạn tối ưu hóa môi trường làm việc hằng ngày.
Bạn có thấy thủ thuật này hữu ích không? Hãy chia sẻ cùng mọi người nhé!
![]() | Phạm Trịnh Minh Triết Java Developer |