root@server:~# docker images -a
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
<none> <none> 5e2dfc857e73 5 days ago 261.6 MB
<none> <none> d053e988f23d 5 days ago 261.6 MB
<none> <none> 1d5d4a2d89eb 5 days ago 261.6 MB
<none> <none> ea0d189fdb19 5 days ago 100.5 MB
<none> <none> 26c6175962b3 5 days ago 100.5 MB
<none> <none> 73d5cec4a0b3 5 days ago 100.5 MB
<none> <none> e19590e1bac1 5 days ago 100.5 MB
Wypróbowałem następujące:
docker rmi $(docker images | grep "^<none>" | awk "{print $3}")
Oraz następujące:
docker rmi $(docker images -f "dangling=true" -q)
Uzyskaj następujący błąd:
docker: "rmi" requires a minimum of 1 argument.
See 'docker rmi --help'.
Usage: docker rmi [OPTIONS] IMAGE [IMAGE...]
Remove one or more images
docker rmi $(docker images -a | grep "^<none>" | awk '{print $3}')
docker rmi $(docker images | grep "<none>" | awk "{print $3}")
docker rmi $(docker images -f dangling=true -q)
docker images
:)Odpowiedzi:
Możesz spróbować wyświetlić tylko nieoznakowane obrazy (bez etykiet lub z etykietą bez tagu):
Jednak niektóre z tych nieoznakowanych obrazów mogą być potrzebne innym.
Wolę usuwać tylko wiszące obrazy :
Jak wspomniałem dla docker 1.13+ we wrześniu 2016 r. W sekcji „ Jak usunąć stare i nieużywane obrazy Dockera ”, możesz również wykonać
image prune
polecenie :Biorąc to pod uwagę, Janaka Bandara wspomina w komentarzach :
Janaka odnosi się do „ Jak usunąć podpisany obraz ze znacznikiem ” Paula V. Novarese :
Zauważ, że Paweł wspomina również o numerze 18892 Moby :
źródło
<none>
usunęło to dla mnie obrazów z tagami (np.foo/bar:<none>
); Musiałem użyćdocker images --digests
idocker rmi foo/bar@<digest>
zgodnie z opisem na success.docker.com/KBase/…sudo docker rmi $(docker images --filter "dangling=true" -q --no-trunc)
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.35/images/json?filters=%7B%22dangling%22%3A%7B%22true%22%3Atrue%7D%7D: dial unix /var/run/docker.sock: connect: permission denied "docker rmi" requires at least 1 argument. See 'docker rmi --help'. Usage: docker rmi [OPTIONS] IMAGE [IMAGE...] [flags] Remove one or more images
hutber@hutber-blade /var/www/dockerfile-wizard $ sudo docker images --filter "dangling=true" -q --no-trunc sha256:c58f4e4b10b1f862d78f96e90bdf13ffe37993279d0992be46d5c15dad51421e sha256:db28e821bc3f337caf711a664bc529be5db8894dd73c5b013ad814cc1e9fc21b sha256:257936750a7d43ae77c713c2cb18342be935de7d3b8fad23d6664fc64acfe753 sha256:6b815cefeb527885b2b9dd831f7f40b05942f00d1367274833a6274154d8ce43
Możesz spróbować tego po prostu
źródło
--force
na końcu. Więc polecenie będzie wyglądać tak -docker images | grep none | awk '{ print $3; }' | xargs docker rmi --force
przycinanie obrazu Dockera usuwa wszystkie wiszące obrazy (te bez tagu). docker image prune -a usunie również wszystkie obrazy, które nie mają kontenera, który ich używa.
Różnica między wiszącymi i nieużywanymi obrazami jest wyjaśniona w tym wątku przepełnienia stosu .
źródło
Możesz iść
docker rmi $(docker images -f "dangling=true" -q)
. Więcej opcji można znaleźć w dokumentacji obrazów .źródło
Zgodnie z dokumentacją dockera możesz wyświetlić tylko nieoznakowane (wiszące) obrazy z
i przekieruj ich na
docker rmi
takie polecenie:Zwróć uwagę, że
-q
parametr pokazuje tylko numeryczne identyfikatory kontenerów.źródło
Możesz użyć,
--force
aby nie pytać o potwierdzenieźródło
Po prostu uruchom to polecenie:
źródło
Znalazłem
docker image prune -f
najbardziej użyteczne i używam go cały czas podczas mojej codziennej pracy, za pomocą znacznika-f
nie poprosi o potwierdzenie. Więcej szczegółów tutajźródło
Usuń obrazy, które mają
none
jako nazwę repozytorium, używając:Usuń obrazy, które mają
none
nazwę tagu lub repozytorium:źródło
źródło
docker system prune
załatwi sprawę, usuwaAle używaj go, zachowując ostrożność!
źródło
Aby usunąć wszystkie obrazy,
none
musimy mieć pewność, że usunęliśmy wszystkie zatrzymane kontenery, których mogą używać:wtedy możemy usunąć wszystkie obrazy:
źródło
Aby usunąć wiszące obrazy, użyj:
Zapoznaj się z moją odpowiedzią, aby uzyskać bardziej szczegółowy opis: https://unix.stackexchange.com/a/445664/292327
źródło
Poniższe polecenie działa dla mnie. to są po prostu "" proste obrazy grep, które pobierają identyfikator obrazu Dockera i usuwają wszystkie obrazy. Proste pojedyncze polecenie, jak to konieczne.
docker rmi $(docker images |grep "<none>"| awk '{print $3}')
źródło
To jest rozszerzenie odpowiedzi tansadio:
Jeśli otrzymujesz następujący błąd:
Możesz to wymusić
--force
:źródło
Następujące spowoduje usunięcie wszystkich
<none>
obrazówMożesz wymusić usunięcie, zmieniając
docker rmi
na,docker rmi -f
chociaż nie polecam tego robić.Niektóre
<none>
obrazy mogą być powiązane z innymi obrazami, więc dla bezpieczeństwa nie używaj-f
tagów.źródło
To proste i jasne,
Nawet ja potrzebowałem 3 dni, aby zrozumieć ten prosty i wyraźny błąd.
Obraz dockera nie został pomyślnie utworzony
Następnie usunąłem 8. linię z Dockerfile, tym razem był to sygnał sukcesu.
Mówi, że pomyślnie otagowano dem: expo, ta linia jest imp podczas procesu dokowania.
źródło
docker rmi -f $ (obrazy dockera -a | awk 'NR> 1 && $ 2 == "" {print $ 3}')
źródło
Wszystko
Udostępnianie polecenia PowerShell dla miłośników Windows (na wypadek, gdybyś nie miał bash, grep lub awk)
źródło
Uruchom następujące polecenie, aby usunąć obrazy za pomocą docker rmi
źródło
Usuń wszystkie opuszczone pojemniki
lub wyjmij pojemniki według wzoru
źródło
spróbuj tego, aby zobaczyć listę ID obrazów dockera z tagiem
<none>
a następnie możesz usunąć wszystkie obrazy z tagiem
<none>
. to działało dla mnie.źródło
100% działa: obrazy dockera | grep none | awk '{print $ 3}' | xargs docker rmi -f
źródło
próbować
docker rmi -f $(docker images -a | awk 'NR> 1 || $2 = "<none>" {print $3}')
, podczas gdy mogą istnieć czystsze poleceniaZaktualizowano
źródło
docker rmi -f $(docker images -a | awk 'NR> 1 || $2 = "" {print $3}
nic nie robi!Po prostu usuń obrazy, używając ich identyfikatorów:
źródło
Wiszące obrazy to duchy z poprzednich kompilacji i ściągnięć, po prostu usuń je za pomocą: docker rmi $ (docker images -f "dangling = true" -q)
źródło
Podano następujące obrazy, w których są używane. Myślę, że to polecenie usuwa niechciane obrazy.
źródło