2015-02-07 29 views
17

khi tôi chạy lệnh như sudo docker rmi me/myimage Tôi nhận được phản hồi ... hình ảnh không được gắn thẻ, nhưng khi tôi chạy lại hình ảnh sudo docker, tôi có thể thấy hình ảnh "không được gắn thẻ" này vẫn còn đó, và, nếu tôi chạy df -h tôi có thể thấy rằng các tập tin thực sự vẫn còn tồn tại và chiếm không gian hệ thống tập tin. Tôi có thể sử dụng lệnh hoặc thủ tục nào để xóa các hình ảnh không cần thiết?cách loại bỏ hình ảnh dock không được gắn thẻ

Trả lời

29

Bạn sẽ có thể loại bỏ hình ảnh Docker untagged sử dụng "dangling=true" cờ:

sudo docker rmi $(sudo docker images -f "dangling=true" -q) 

nguồn:

https://docs.docker.com/engine/reference/commandline/images/

+2

tôi vẫn tiếp tục nhìn thấy những thứ như thế này: 5e76bce9b555 2 days ago 3,488 GB f4ef5d62dac0 2 days ago 3,348 GB 1fb11b87d78e 2 ngày trước 2.707 GB 9f4c46af8113 2 ngày trước 386.9 MB 22fcde4c8949 2 ngày trước 16.45 MB c7b84131dd95 –

+1

Bạn có thể cụ thể hơn một chút không? bạn có ý gì bằng cách "tiếp tục nhìn thấy"? Nó sẽ là tốt nhất nếu bạn thêm các lệnh cụ thể mà bạn đang chạy và đầu ra cho câu hỏi của bạn thông qua một chỉnh sửa. Tốt nhất là rất rõ ràng như các lệnh bạn đã chạy và theo thứ tự nào. –

+0

khi tôi chạy hình ảnh sudo docker Tôi thấy một số mục như: 9f4c46af8113 2 ngày trước 386.9 MB –

1

Nếu John Petrone giải pháp không làm việc, cố gắng loại bỏ những hình ảnh giới thiệu rõ ràng là IMAGE ID bạn thấy khi bạn chạy docker images. Bạn có thể xóa tất cả chúng bằng một lệnh

for i in hình ảnh sudo docker | grep \ | awk '{print $ 3}' ; do sudo docker rmi $i; done

PD: Tôi không biết câu trả lời của John Petrone. Nó hoạt động độc đáo với Docker 1.4.1

18

Trước tiên, bạn cần xóa các vùng chứa đã thoát, sau đó xóa các hình ảnh lơ lửng.

docker rm $(docker ps -q -f status=exited) 
docker rmi $(docker images -q -f dangling=true) 

Sau cùng, tôi đã tạo tập lệnh dưới đây là ~/bin/dclean và đã sử dụng nó.

#!/bin/sh 

processes=`docker ps -q -f status=exited` 
if [ -n "$processes" ]; then 
    docker rm $processes 
fi 

images=`docker images -q -f dangling=true` 
if [ -n "$images" ]; then 
    docker rmi $images 
fi 
+0

đẹp, nó hoàn chỉnh hơn. Loại bỏ thùng chứa đã thoát sẽ là bước đầu tiên để giữ cho nó sạch sẽ –

+0

Đây phải là câu trả lời. –

0

bạn có thể xóa hình ảnh duy nhất bằng id hình ảnh của họ ...

docker images 
docker rmi <image-id> 
Các vấn đề liên quan