2k1
  • Home
  • Programming
  • System
  • Design
  • Applications
  • Tech
No Result
View All Result
  • Login
2k1
  • Home
  • Programming
  • System
  • Design
  • Applications
  • Tech
No Result
View All Result
2k1
No Result
View All Result

Kiểm Tra Dung Lượng Docker Chiếm Giữ: Hướng Dẫn Chi Tiết Từ A-Z

Nguyen Pham by Nguyen Pham
15/10/2025
in Blog
Reading Time: 10 mins read
A A
0

“`html





Kiểm Tra Dung Lượng Docker Chiếm Giữ: Hướng Dẫn Chi Tiết Từ A-Z


Nếu bạn đang sử dụng Docker, chắc hẳn đã có lúc bạn tự hỏi: “Liệu Docker có đang ‘ngốn’ hết dung lượng ổ đĩa của mình không?” Hoặc tệ hơn, bạn nhận ra ổ cứng của mình đang cạn kiệt mà không rõ nguyên nhân. Đừng lo lắng! Trong bài viết này, chúng ta sẽ cùng nhau đi sâu vào cách kiểm tra dung lượng mà Docker chiếm giữ và những bí kíp để giải phóng dung lượng Docker hiệu quả nhất. Hãy cùng khám phá nhé!

Tại Sao Bạn Cần Quan Tâm Đến Dung Lượng Docker?

Việc theo dõi và quản lý dung lượng Docker không chỉ là một thói quen tốt mà còn mang lại nhiều lợi ích thiết thực:

  • Hiệu suất hệ thống: Ổ đĩa đầy có thể làm chậm toàn bộ hệ thống của bạn, ảnh hưởng đến hiệu suất của các ứng dụng khác, bao gồm cả Docker.
  • Ngăn ngừa lỗi: Các container, image, hoặc volume mới có thể không khởi tạo được nếu không còn đủ không gian. Điều này đặc biệt quan trọng trong môi trường sản xuất.
  • Tối ưu hóa tài nguyên: Việc hiểu rõ Docker đang sử dụng bao nhiêu tài nguyên giúp bạn quản lý tốt hơn, đặc biệt trong môi trường máy chủ hoặc CI/CD, nơi tài nguyên là hữu hạn.
  • Tiết kiệm chi phí: Đối với các dịch vụ đám mây, dung lượng lưu trữ đôi khi đi kèm với chi phí. Việc quản lý tốt giúp bạn tiết kiệm tiền.

Cách Kiểm Tra Dung Lượng Docker Chiếm Giữ Một Cách Nhanh Chóng

Để bắt đầu kiểm tra dung lượng Docker, chúng ta sẽ đi từ tổng quan đến chi tiết.

1. Lệnh “Thần Thánh” docker system df

Đây là lệnh đầu tiên và cơ bản nhất để có cái nhìn tổng quan về tình hình sử dụng dung lượng của Docker. Hãy mở terminal/command prompt và gõ:

docker system df

Kết quả sẽ trông giống như thế này:

TYPE                TOTAL               ACTIVE              SIZE                RECLAIMABLE
Images              10                  5                   2.5 GB              2 GB (80%)
Containers          15                  3                   500 MB              400 MB (80%)
Local Volumes       5                   2                   1 GB                800 MB (80%)
Build Cache         50                  0                   3 GB                3 GB (100%)

Giải thích các cột quan trọng:

  • TYPE: Loại tài nguyên (Images, Containers, Volumes, Build Cache).
  • TOTAL: Tổng số lượng tài nguyên loại đó.
  • ACTIVE: Số lượng tài nguyên đang hoạt động.
  • SIZE: Tổng dung lượng mà loại tài nguyên đó đang chiếm giữ.
  • RECLAIMABLE: Đây là con số quan trọng nhất! Nó cho biết dung lượng bạn có thể giải phóng được (thường là các tài nguyên không còn được sử dụng hoặc đang ở trạng thái “dangling”).

2. Kiểm Tra Chi Tiết Hơn Từng Thành Phần Của Docker

Nếu bạn muốn biết chính xác container, image hay volume nào đang “ngốn” nhiều dung lượng nhất, bạn cần các lệnh chi tiết hơn.

2.1. Kiểm Tra Dung Lượng Các Docker Images

Các image có thể chiếm rất nhiều không gian, đặc biệt nếu bạn có nhiều phiên bản hoặc image lớn. Để xem kích thước từng image:

docker images --format "{{.Size}}t{{.Repository}}:{{.Tag}}t{{.ID}}" | sort -rh

Lệnh này sẽ liệt kê tất cả các image, sắp xếp chúng theo kích thước từ lớn nhất đến nhỏ nhất, giúp bạn dễ dàng nhận diện “kẻ gây rối” và kiểm tra dung lượng docker image một cách hiệu quả.

2.2. Kiểm Tra Dung Lượng Các Docker Containers

Mặc dù container thường không chiếm nhiều dung lượng bằng image cơ sở của chúng, nhưng dữ liệu mà chúng tạo ra (log, file tạm, v.v.) trong lớp ghi (write layer) có thể tích lũy theo thời gian.

  • Để kiểm tra các container đang chạy và dung lượng lớp ghi của chúng:
    docker ps -as
  • Để kiểm tra tất cả container (kể cả đã dừng) và dung lượng lớp ghi của chúng:
    docker ps -a --format "{{.Size}}t{{.Names}}t{{.ID}}" | sort -rh

Lưu ý: Kích thước hiển thị ở đây là kích thước của lớp ghi của container, không bao gồm kích thước của image cơ sở mà nó sử dụng.

2.3. Kiểm Tra Dung Lượng Các Docker Volumes

Volumes là nơi lưu trữ dữ liệu bền vững của các container. Chúng có thể phình to nhanh chóng nếu không được quản lý, đặc biệt nếu các ứng dụng ghi nhiều dữ liệu vào chúng.

docker volume ls -q | xargs docker inspect --format '{{ .Name }} {{ .Mountpoint }}' | xargs -n2 sudo du -sh

Lệnh này hơi phức tạp hơn một chút, nó sẽ liệt kê tất cả các volume và sau đó sử dụng `du -sh` để kiểm tra dung lượng thực tế mà mỗi volume đang chiếm giữ trên ổ đĩa. (Bạn có thể cần quyền `sudo` để truy cập các thư mục của volume).

2.4. Kiểm Tra Dung Lượng Build Cache (Nếu Bạn Dùng Docker Buildx)

Nếu bạn thường xuyên build Docker images, đặc biệt là với `docker buildx`, cache của nó có thể chiếm một lượng đáng kể dung lượng trên ổ đĩa của bạn.

docker buildx du

Lệnh này sẽ hiển thị tổng dung lượng cache của buildx và chi tiết các layer cache.

Giải Phóng Dung Lượng Docker: Các Bước Tối Ưu Hóa

Sau khi đã kiểm tra dung lượng Docker và xác định được những thành phần nào đang chiếm nhiều không gian, đã đến lúc “dọn dẹp”!

1. Lệnh “Tổng Quát” docker system prune

Đây là lệnh mạnh mẽ nhất để giải phóng dung lượng Docker một cách tự động. Nó sẽ xóa tất cả các tài nguyên Docker không sử dụng (dangling), bao gồm:

  • Containers đã dừng.
  • Networks không được sử dụng bởi bất kỳ container nào.
  • Images không có tag và không được tham chiếu bởi bất kỳ container nào.
  • Build cache.
docker system prune

Để xóa thêm cả các volume không được sử dụng (cần cẩn thận với lệnh này vì volume chứa dữ liệu quan trọng):

docker system prune --volumes

Để xóa *tất cả* các tài nguyên không được sử dụng (bao gồm cả những image không còn được sử dụng nhưng vẫn có tag):

docker system prune -a

Và kết hợp cả hai để dọn dẹp triệt để nhất:

docker system prune -a --volumes

Cảnh báo quan trọng: Luôn đọc kỹ thông báo trước khi xác nhận `y` (yes) để tránh xóa nhầm dữ liệu quan trọng!

2. Giải Phóng Từng Thành Phần Cụ Thể

Nếu bạn muốn kiểm soát chặt chẽ hơn, bạn có thể xóa từng loại tài nguyên:

  • Xóa tất cả containers đã dừng:
    docker container prune
  • Xóa tất cả images không sử dụng (dangling images – không có tag và không được container nào tham chiếu):
    docker image prune
  • Xóa tất cả images không sử dụng (bao gồm cả dangling và untagged images):
    docker image prune -a
  • Xóa tất cả volumes không sử dụng:
    docker volume prune

    Cực kỳ cẩn thận với lệnh này! Hãy chắc chắn rằng bạn không cần dữ liệu trong các volume đó nữa trước khi thực hiện.

  • Xóa build cache của Docker Buildx:
    docker buildx prune -af

3. Xóa Thủ Công Các Tài Nguyên Cụ Thể

Nếu bạn đã xác định được một vài image, container hoặc volume cụ thể cần xóa, bạn có thể làm thủ công:

  • Xóa container: docker rm [ID_hoặc_Tên_container]
  • Xóa image: docker rmi [ID_hoặc_Tên_image] (Lưu ý: Bạn phải xóa hết các container đang sử dụng image đó trước khi xóa image.)
  • Xóa volume: docker volume rm [Tên_volume]

Lời Khuyên Để Giữ Dung Lượng Docker Luôn Gọn Gàng

Phòng bệnh hơn chữa bệnh! Áp dụng các mẹo sau để duy trì không gian lưu trữ của Docker ở mức tối ưu:

  • Thường xuyên dọn dẹp: Biến việc chạy docker system prune thành thói quen định kỳ (ví dụ, hàng tuần hoặc hàng tháng).
  • Sử dụng Dockerfile hiệu quả: Tối ưu hóa Dockerfile để tạo ra các image nhỏ gọn hơn. Sử dụng multi-stage builds, chọn các base image nhỏ (như Alpine), và xóa các file tạm không cần thiết trong quá trình build.
  • Giới hạn lịch sử image: Nếu bạn đang dùng hệ thống CI/CD, hãy cân nhắc giới hạn số lượng image được giữ lại trên máy chủ build.
  • Quản lý volumes cẩn thận: Chỉ tạo volumes khi thực sự cần dữ liệu bền vững và xóa chúng khi không còn sử dụng. Tránh lưu trữ dữ liệu không cần thiết trong volumes.
  • Kiểm tra log: Các file log của container có thể phình to nhanh chóng. Cấu hình log rotation hoặc giới hạn kích thước log nếu cần.

Kết Luận

Việc kiểm tra dung lượng mà Docker chiếm giữ và chủ động giải phóng dung lượng Docker không chỉ giúp hệ thống của bạn hoạt động mượt mà hơn mà còn tối ưu hóa tài nguyên đáng kể. Hy vọng với hướng dẫn chi tiết này, bạn đã có đủ công cụ và kiến thức để quản lý không gian lưu trữ của Docker một cách hiệu quả. Đừng để Docker “ngốn” hết ổ đĩa của bạn nữa nhé!

Bạn có mẹo hay công cụ nào khác để quản lý dung lượng Docker không? Hãy chia sẻ trong phần bình luận bên dưới để cộng đồng cùng tham khảo!



“`

Previous Post

Các Thuật Toán Tìm Đường Đi: Khám Phá Trái Tim Của GPS, Game & AI

Next Post

USDT là gì? Khám phá A-Z về Stablecoin và Vai trò của nó trong Crypto

Related Posts

Tối Ưu Hóa Workflow Hiệu Quả Với Git Stash: Tạm Lưu Thay Đổi Thần Tốc Cho Dev
Blog

Tối Ưu Hóa Workflow Hiệu Quả Với Git Stash: Tạm Lưu Thay Đổi Thần Tốc Cho Dev

by Nguyen Pham
30/10/2025
Cứu Tinh Của Developers: Hoàn Tác Thay Đổi Trong Git Với Reset, Revert và Checkout
Blog

Cứu Tinh Của Developers: Hoàn Tác Thay Đổi Trong Git Với Reset, Revert và Checkout

by Nguyen Pham
30/10/2025
Xử Lý Conflict Trong Git: Hướng Dẫn Toàn Diện Giải Quyết Xung Đột Mã Nguồn Hiệu Quả
Blog

Xử Lý Conflict Trong Git: Hướng Dẫn Toàn Diện Giải Quyết Xung Đột Mã Nguồn Hiệu Quả

by Nguyen Pham
30/10/2025
Làm Chủ Git Remote: Hướng Dẫn Toàn Diện Về Push, Pull và Clone Repository
Blog

Làm Chủ Git Remote: Hướng Dẫn Toàn Diện Về Push, Pull và Clone Repository

by Nguyen Pham
30/10/2025
Tối Ưu Hóa Quy Trình Phát Triển: Hướng Dẫn Sử Dụng Git Branch và Merge Hiệu Quả
Blog

Tối Ưu Hóa Quy Trình Phát Triển: Hướng Dẫn Sử Dụng Git Branch và Merge Hiệu Quả

by Nguyen Pham
30/10/2025
Git Là Gì? Hướng Dẫn Sử Dụng Git Cho Người Mới Bắt Đầu Từ A-Z
Blog

Git Là Gì? Hướng Dẫn Sử Dụng Git Cho Người Mới Bắt Đầu Từ A-Z

by Nguyen Pham
30/10/2025
Load More
Next Post
USDT là gì? Khám phá A-Z về Stablecoin và Vai trò của nó trong Crypto

USDT là gì? Khám phá A-Z về Stablecoin và Vai trò của nó trong Crypto

Please login to join discussion

@2021 2k1.org [email protected]

No Result
View All Result
  • Home
  • Review
  • Applications
  • Computers
  • Gaming
  • Microsoft

© 2021 NData

Welcome Back!

Login to your account below

Forgotten Password?

Retrieve your password

Please enter your username or email address to reset your password.

Log In