AskClean

Docker chiếm quá nhiều dung lượng trên Mac? Cách dọn an toàn

Đội ngũ AskClean · Cập nhật 2026-11-02

Chạy docker system df -v để biết image, container đã dừng, build cache hay volume đang chiếm dung lượng của Docker. Hãy dọn nhóm đã chẩn đoán trước, giữ các named volume nếu dữ liệu chưa được sao lưu, và tuyệt đối không tự xóa hay di chuyển Docker.raw trong Finder.

Hình minh họa dung lượng Docker với các khối container, lớp image, mảnh bộ nhớ đệm và một volume dữ liệu được bảo vệ
Dung lượng Docker gồm nhiều nhóm dữ liệu nằm trong cùng một đĩa ảo; hãy kiểm tra từng nhóm trước khi prune.

Vì sao Docker trông rất lớn trên macOS

Docker Desktop chạy container Linux trong một máy ảo nhẹ và lưu image, lớp ghi của container, build cache cùng volume trong một tệp ảnh đĩa lớn, thường là Docker.raw. Dung lượng tối đa, kích thước hiển thị và dung lượng Docker thực sự dùng không phải lúc nào cũng trùng nhau. Xóa tệp này là bỏ qua cơ chế quản lý của Docker và có thể hủy cùng lúc mọi image, container và volume; di chuyển nó trong Finder cũng có thể làm hỏng Docker Desktop.

Kiểm tra trước khi prune

docker system df -v cho biết mức sử dụng theo từng nhóm; docker ps -a, docker image ls và docker volume ls giúp xác định từng đối tượng thuộc dự án nào. Con số reclaimable (có thể thu hồi) không đồng nghĩa với an toàn: một image có thể dùng chung cho nhiều container, và một volume không gắn với container nào vẫn có thể chứa bản duy nhất của một cơ sở dữ liệu.

  1. Chạy docker system df -v và lưu kết quả kèm ngày.
  2. Liệt kê container bằng docker ps -a, image bằng docker image ls và đối chiếu với dự án hoặc quy trình CI đang dùng.
  3. Liệt kê volume bằng docker volume ls, xác định chủ sở hữu và sao lưu mọi volume chứa dữ liệu quan trọng.
  4. Prune riêng nhóm giải thích được mức tăng dung lượng trước, chẳng hạn build cache hoặc container đã dừng.
  5. Chạy lại docker system df -v, thử khởi động các dự án quan trọng và kiểm tra dung lượng trống của macOS.

Volume không gắn với container nào đang chạy chưa chắc là dữ liệu bỏ đi được; dự án Compose, cơ sở dữ liệu đã dừng và các quy trình khôi phục dùng một lần thường để lại những volume hợp lệ.

Dùng lệnh có mục tiêu

Xóa container và image đã biết là lỗi thời bằng docker container rm và docker image rm; xóa container đã dừng sẽ mất thay đổi trong lớp ghi của nó nhưng không xóa named volume. docker builder prune dọn build cache tạo lại được, đổi lại lần build sau chậm hơn. docker system prune mặc định xóa container đã dừng, network không dùng, image dangling và build cache không dùng; -a mở rộng sang mọi image không có container nào dùng, còn --volumes thêm cả volume ẩn danh — đừng thêm các tùy chọn này khi chưa xem xét.

Bảo vệ volume và đĩa ảo

Sao lưu cơ sở dữ liệu bằng công cụ xuất dữ liệu gốc hoặc một quy trình đã thử khôi phục; sao chép thư mục từ volume đang chạy chưa chắc là bản sao lưu nhất quán. Đổi giới hạn dung lượng hay vị trí ảnh đĩa trong Docker Desktop Settings, không phải trong Finder, và đo lại sau khi prune vì dung lượng có thể được trả về chậm. AskClean cho thấy dung lượng Docker chiếm trên Mac nhưng đánh dấu Docker.raw, thông tin xác thực, image và volume là dữ liệu do Docker quản lý hoặc không bao giờ được chọn, thay vì xóa như bộ nhớ đệm ứng dụng thông thường.

Tóm tắt quyết định và rủi ro

Kiểm tra dung lượng mà Docker Desktop dùng trên Mac, dọn an toàn container đã dừng, image và build cache, đồng thời bảo vệ volume và đĩa ảo Docker.raw.

Quyết địnhNơi kiểm traGiới hạn an toàn
Vì sao Docker trông rất lớn trên macOSDocker.raw / Docker Desktop SettingsDocker Desktop chạy container Linux trong một máy ảo nhẹ và lưu image, lớp ghi của container, build cache cùng volume trong một tệp ảnh đĩa lớn, thường là Docker.raw.
Kiểm tra trước khi prunedocker system df -v / docker ps -a / docker volume lsdocker system df -v cho biết mức sử dụng theo từng nhóm; docker ps -a, docker image ls và docker volume ls giúp xác định từng đối tượng thuộc dự án nào.
Dùng lệnh có mục tiêudocker container rm / image rm / builder prune / system pruneXóa container và image đã biết là lỗi thời bằng docker container rm và docker image rm; xóa container đã dừng sẽ mất thay đổi trong lớp ghi của nó nhưng không xóa named volume.
Bảo vệ volume và đĩa ảovolume / Docker Desktop SettingsSao lưu cơ sở dữ liệu bằng công cụ xuất dữ liệu gốc hoặc một quy trình đã thử khôi phục; sao chép thư mục từ volume đang chạy chưa chắc là bản sao lưu nhất quán.

Câu hỏi thường gặp

Vì sao Docker.raw lớn như vậy?

Đây là đĩa ảo chứa image, container, bộ nhớ đệm và volume phía Linux của Docker Desktop. Kích thước logic hoặc tối đa của nó có thể khác dung lượng thực sự đang dùng trên ổ đĩa, nên hãy kiểm tra docker system df -v và Docker Desktop Settings trước khi làm bất cứ điều gì.

docker system prune có xóa volume không?

Mặc định là không. Thêm --volumes sẽ mở rộng việc dọn sang volume ẩn danh, vốn có thể chứa dữ liệu cơ sở dữ liệu quan trọng. Hãy sao lưu và xác định chủ sở hữu trước, và chỉ dùng -a hay --volumes khi đã hiểu chi phí tải lại image và rủi ro mất dữ liệu.

Có thể xóa Docker.raw trong Finder không?

Đừng tự xóa hay di chuyển tệp này: việc đó có thể hủy toàn bộ dữ liệu Docker cục bộ hoặc làm hỏng Docker Desktop. Hãy dùng CLI của Docker cho các đối tượng và Docker Desktop Settings cho ảnh đĩa.

Nguồn tham khảo

Tiếp tục dọn dung lượng cho lập trình viên