Umiem pisać
docker images --filter "dangling=true"
Jakich innych filtrów mogę używać?
Mogę użyć czegoś takiego?
docker images --filter "running=false"
Docker 1.13.0 obsługuje następujące warunki:
-f, --filter value Filter output based on conditions provided (default [])
- dangling=(true|false)
- label=<key> or label=<key>=<value>
- before=(<image-name>[:tag]|<image-id>|<image@digest>)
- since=(<image-name>[:tag]|<image-id>|<image@digest>)
- reference=(pattern of an image reference)
Lub użyj, grep
aby filtrować obrazy według określonej wartości:
$ docker images | grep somevalue
docker images -f "reference=*/*/*latest"
- To da ci coś podobnegok8s:30000/github/someImage:latest
. albodocker images -f "reference=*/*latest"
cię złapiek8s:30000/someImage:latest
. jeśli chcesz je posprzątać -docker rmi $(docker images -f "reference=*/*/*latest" -q --no-trunc)
Możesz także użyć
REPOSITORY
argumentu do,docker images
aby filtrować obrazy.Załóżmy na przykład, że mamy obrazy:
Możemy jawnie filtrować wszystkie obrazy o podanej nazwie:
Docker obsługuje również globbing:
Oficjalne dokumenty tutaj .
źródło
*
znak wieloznaczny nie ma zastosowania/
w nazwie repozytorium. Dlatego w ostatnim przykładzie, aby wyświetlić wszystkie obrazy ze znacznikiem,latest
poleceniedocker images --filter=reference='*:latest'
jest nieprawidłowe. Prawidłowe polecenie todocker images --filter=reference='*/*:latest'
.--filter name=something
- i przez cały czas prostym rozwiązaniem było to, że w ogóle nie potrzebujesz (n wyraźnego) filtra!openapitools/openapi-generator-cli
,docker images open*
nie znajdziesz go. Aledocker images open*/*
znajdę to.W wersji Docker 1.7:
Aktualnie obsługiwane filtry to:
true
lubfalse
)label=<key>
lublabel=<key>=<value>
)źródło
before=<image-name>[:tag]|<image-id>|<image@digest>
&since=(<image-name>[:tag]|<image-id>|<image@digest>)
Dla mnie,
załatwił sprawę. Polecenie date jest w stanie wygenerować dane wyjściowe w tym samym formacie za pośrednictwem
co pozwala mi porównać sygnatury czasowe. Jednak dla wygody nadal używam filtra do zwisających obrazów.
źródło
Do czyszczenia starych, zatrzymanych pojemników możesz użyć:
docker container prune
Aby usunąć nieoznakowane obrazy, możesz użyć:
docker image prune
źródło
Jest inny przykład, działa z wersją 17.09 ++:
Wyjaśnienie:
reference
- odwołujemy się do obrazów według nazwy repozytorium;dangling=true
- usuwamy nieoznakowane obrazy;-q
- oznacza cicho, pokazując tylko numeryczne identyfikatory obrazów zamiast całej linii.To polecenie usuwa wszystkie obrazy, które mają nazwę repozytorium „register.gitlab.com/example-app” i nieoznaczone (mają
<none>
w kolumnie znaczników)Link referencyjny: https://docs.docker.com/engine/reference/commandline/images/#filtering
źródło
Do Twojej wiadomości, bez filtra, ale do usuwania wszystkich obrazów, gdy używasz ich do testowania lub nauki,
obraz docker rm -f $ (obraz docker ls)
Pozdrowienia.
źródło