Trong hướng dẫn này, chúng ta sẽ xem xét một số lý do tại sao hình ảnh lơ lửng và không được sử dụng lại phổ biến trong Docker. Sau đó chúng ta sẽ xem xét một số cách để loại bỏ chúng Show Thỉnh thoảng nên dọn dẹp các hình ảnh Docker lơ lửng và không sử dụng vì nhiều hình ảnh không sử dụng có thể dẫn đến lãng phí dung lượng ổ đĩa 2. Các đối tượng không sử dụng trong DockerDocker không tự động xóa các đối tượng không sử dụng. Thay vào đó, nó giữ chúng trên đĩa cho đến khi chúng tôi yêu cầu nó xóa chúng một cách rõ ràng. Một số đối tượng không sử dụng là
Hãy khám phá cách sử dụng Docker có thể dẫn đến những hình ảnh không cần thiết và cách loại bỏ chúng 2. 1. Dangling Docker ImagesHình ảnh lơ lửng được tạo khi chúng tôi ghi đè lên chúng bằng một hình ảnh mới có cùng tên và thẻ Hãy xem một ví dụ nhỏ về cách cập nhật hình ảnh sẽ dẫn đến hình ảnh lơ lửng. Dưới đây là một Dockerfile đơn giản
Hãy xây dựng hình ảnh này
Chúng tôi có thể xác minh rằng hình ảnh được tạo bằng cách chạy lệnh bên dưới
Giả sử chúng ta thêm một chút thay đổi vào Dockerfile
Hãy xây dựng lại hình ảnh bằng lệnh tương tự như trước và liệt kê lại các hình ảnh
The build created a new my-image image. As we can see, the old image is still there, but now it's dangling. Its name and tag are set to Xin lưu ý rằng nếu chúng tôi không thực hiện thay đổi đối với Dockerfile, hình ảnh sẽ không được tạo lại trong khi chạy lệnh build. Nó sẽ được sử dụng lại từ bộ đệm 2. 2. Hình ảnh Docker không sử dụngHình ảnh không sử dụng là hình ảnh không có vùng chứa đang chạy hoặc đã dừng được liên kết với chúng Ví dụ về hình ảnh không sử dụng là
Như chúng ta có thể thấy, hình ảnh không sử dụng không nhất thiết phải treo lủng lẳng. Chúng tôi có thể sẽ sử dụng những hình ảnh này trong tương lai và chúng tôi có thể muốn giữ chúng. Tuy nhiên, giữ nhiều hình ảnh không sử dụng có thể dẫn đến các vấn đề về dung lượng 3. Xóa hình ảnh không cần thiếtChúng tôi đã xem xét một vài lý do tại sao hình ảnh lơ lửng và không sử dụng lại phổ biến trong Docker. Bây giờ, hãy xem xét một vài cách để loại bỏ chúng 3. 1. Xóa hình ảnh theo ID hoặc tênNếu biết ID hình ảnh, chúng tôi có thể sử dụng lệnh docker rmi để xóa hình ảnh
Lệnh này sẽ xóa hình ảnh có ID 7ed6e7202eca (hình ảnh lơ lửng). Hãy kiểm tra lại các hình ảnh
Ngoài ra, chúng ta có thể sử dụng lệnh docker rmi với tên và thẻ hình ảnh nếu chúng ta muốn xóa một hình ảnh cụ thể không sử dụng
3. 2. Cắt tỉa hình ảnh DockerNếu chúng ta không muốn tìm các hình ảnh lơ lửng và loại bỏ từng cái một, chúng ta có thể sử dụng lệnh docker image prune. Lệnh này loại bỏ tất cả các hình ảnh lơ lửng Nếu chúng tôi cũng muốn xóa hình ảnh không sử dụng, chúng tôi có thể sử dụng cờ -a Hãy chạy lệnh dưới đây ________số 8Lệnh sẽ trả về danh sách ID hình ảnh đã bị xóa và dung lượng đã được giải phóng Nếu chúng tôi liệt kê lại các hình ảnh, chúng tôi sẽ thấy không còn hình ảnh nào vì chúng tôi không chạy bất kỳ vùng chứa nào 3. 3. Cắt tỉa hệ thống DockerTìm và xóa tất cả các đối tượng không sử dụng có thể rất tẻ nhạt. Để làm cho mọi thứ dễ dàng hơn, chúng ta có thể sử dụng lệnh prune hệ thống docker Theo mặc định, lệnh này sẽ xóa các đối tượng bên dưới
Ngoài ra, chúng ta có thể thêm cờ -a để xóa tất cả vùng chứa, hình ảnh, mạng không sử dụng và toàn bộ bộ đệm bản dựng. Điều này rất hữu ích khi chúng tôi muốn giải phóng nhiều dung lượng Hãy xem một ví dụ về điều này
4. Phần kết luậnTrong hướng dẫn này, chúng tôi đã xem xét lý do tại sao hình ảnh lơ lửng và không sử dụng lại phổ biến trong Docker. Chúng tôi cũng đã xem xét các cách để loại bỏ chúng bằng lệnh rmi, image prune và system prune |