Chcę usunąć wszystkie wersje obrazów docker z nazwami, które zawierają dany ciąg (imagename
).
Próbowałem poniżej, ale nie wydaje się działać:Jak usunąć obrazy dokowane na podstawie nazwy?
docker images | grep 'imagename' | xargs -I {} docker rmi
Chcę usunąć wszystkie wersje obrazów docker z nazwami, które zawierają dany ciąg (imagename
).
Próbowałem poniżej, ale nie wydaje się działać:Jak usunąć obrazy dokowane na podstawie nazwy?
docker images | grep 'imagename' | xargs -I {} docker rmi
Spróbuj wykonać następujące czynności:
docker rmi $(docker images |grep 'imagename')
Nieco bardziej dokładna wersja - grepping tylko na nazwę repozytorium:
docker rmi $(docker images --format '{{.Repository}}' | grep 'imagename')
Dostałem kolejną zwięzłą odpowiedź. Jedyną zmianą było usunięcie niepotrzebnej flagi -I {}
.
docker images | grep 'imagename' | xargs docker rmi
docker rmi `docker images | awk '$1 ~ /imageName/ {print $3}'`
To usunie wszystkie obrazy nazwą "imageName". W niektórych przypadkach może to spowodować błąd, taki jak "odwołanie do obrazu w jednym lub więcej repozytoriach". W takim przypadku użyj siły usuń.
docker rmi -f `docker images | awk '$1 ~ /imageName/ {print $3}'`
Innym sposobem może być:
docker images | awk '{ OFS = ":" }$1 ~ /imageName/ {print $1,$2}'
docker images
faktycznie używa pierwszego argumentu pozycyjnym jako nazwa obrazu do filtrowania. Nie jest wymagane grep i awk. Opcja -q
zwróci tylko pasujące identyfikatory obrazów, które można podać do docker rmi
.
docker rmi --force $(docker images -q imagename | uniq)
Aktualna wersja Döcker nie obsługuje tego (grep): Döcker RMI $ („imagename” zdjęć Döcker) – Charlie
Aktualna wersja Döcker wydaje się wspierać ten - może ja czegoś brakuje? - docker rmi 'imagename' – Charlie
@Charlie Myślę, że większość ludzi szuka sposobu na dopasowanie wszystkich obrazów pasujących do '* imagename *' zamiast jednego obrazu o nazwie 'imagename'. – RJFalconer