Я хотел бы узнать, существует ли локально образ Docker с определенным тегом. Я могу использовать bash-скрипт, если клиент Docker не может этого сделать изначально.
Просто чтобы дать некоторые подсказки для потенциального сценария bash, результат выполнения docker images
команды возвращает следующее:
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
rabbitmq latest e8e654c05c91 5 weeks ago 143.5 MB
busybox latest 8c2e06607696 6 weeks ago 2.433 MB
rabbitmq 3.4.4 a4fbaad9f996 11 weeks ago 131.5 MB
Попробуйте
docker inspect
, например:Но теперь с существующим изображением вы получите кучу информации, например:
И это в хорошем формате json.
источник
images
иps
команды всегда завершаются с 0, иinspect
это очень просто:docker inspect "${image_id}:${image_tag}" > /dev/null 2>&1 || echo "does not exist!"
docker inspect
отлично из-за ненулевого кода возврата, когда изображения не существует.docker images -q
.tldr:
В качестве демонстрации ...
успех, найдено изображение:
сбой, отсутствует изображение:
Ссылка:
https://docs.docker.com/engine/reference/commandline/image_inspect/
источник
Вы можете использовать следующее:
Или:
источник
С помощью приведенного выше ответа Vonc я создал следующий сценарий bash с именем
check.sh
:Используя его для существующего изображения, и тег будет напечатан
exists
, например:Используя его для несуществующего изображения, и тег будет напечатан
doesn't exist
, например:источник
С помощью
test
или в одну строку
источник
Если вы пытаетесь найти образ докера в реестре докеров, я думаю, что самый простой способ проверить, присутствует ли образ докера, - это использовать службу списка тегов REST API Docker V2.
Пример:-
если приведенный выше результат возвращает 200Ok со списком тегов изображений, то мы знаем, что изображение существует
иначе, если вы видите что-то вроде
тогда вы точно знаете, что изображения не существует.
источник
В сценарии bash я делаю это, чтобы проверить, существует ли изображение по тегу:
Пример сценария выше проверяет, существует ли изображение mysql с тегом 5.6. Если вы хотите просто проверить, существует ли какое-либо изображение mysql без конкретной версии, просто передайте имя репозитория без тега следующим образом:
источник
Немного от меня очень хорошим читателям:
Сложение
Смотреть
Бегать
источник
для конкретного имени тега
для тега "Like clause": my_image_tag -> start my_ima *
если вы хотите что-то «изображение», например, удалить все изображения, тег начал «my_ima», попробуйте это
источник