Краткий ответ
Это AND
.
Тестирование ...
3 Dockerfiles
:
FROM alpine
LABEL apples="fruit"
FROM alpine
LABEL oranges="fruit"
FROM alpine
LABEL apples="fruit" oranges="fruit"
3 images
:
$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
both latest e9e48f31222f 11 seconds ago 4.41MB
oranges latest f384e4db9974 33 seconds ago 4.41MB
apples latest 06fa8c565ec1 51 seconds ago 4.41MB
--filter
тесты следуют *:
$ docker image ls --filter label=apples=fruit
REPOSITORY TAG IMAGE ID CREATED SIZE
both latest e9e48f31222f 34 seconds ago 4.41MB
apples latest 06fa8c565ec1 About a minute ago 4.41MB
$ docker image ls --filter label=oranges=fruit
REPOSITORY TAG IMAGE ID CREATED SIZE
both latest e9e48f31222f 44 seconds ago 4.41MB
oranges latest f384e4db9974 About a minute ago 4.41MB
$ docker image ls --filter label=apples=fruit --filter label=oranges=fruit
REPOSITORY TAG IMAGE ID CREATED SIZE
both latest e9e48f31222f About a minute ago 4.41MB
Чернослив
Изображение с именем both
(которое имеет обе метки) будет удалено:
$ docker image prune -a --filter label=apples=fruit --filter label=oranges=fruit
WARNING! This will remove all images without at least one container associated to them.
Are you sure you want to continue? [y/N] y
Deleted Images:
untagged: both:latest
deleted: sha256:e9e48f31222f04dd54cffb4688367338d8e061ef3b1471768c1ef6a7045007ab
* Примечание: docker image ls
не работает с отрицательной фильтрацией (!=
), из документов :
Прогнозирование того, что будет удалено
Если вы используете положительную фильтрацию (тестирование на наличие метки или наличие у метки определенного значения), вы можете использовать docker image ls
с тем же синтаксисом фильтрации, чтобы увидеть, какие изображения соответствуют вашему фильтру.
Однако, если вы используете отрицательную фильтрацию (проверка на отсутствие метки или на то, что метка не имеет определенное значение), этот тип фильтра не работает с docker image ls
, поэтому вы не может легко предсказать, какие изображения будут удалены. Кроме того, запрос подтверждения для docker image prune
всегда предупреждает, что все висячие изображения будут удалены, даже если вы используете --filter
.