Me gustaría saber si existe una imagen de Docker con una etiqueta específica a nivel local. Estoy bien usando un script bash si el cliente Docker no puede hacer esto de forma nativa.
Solo para proporcionar algunas sugerencias para un posible script bash, el resultado de ejecutar el docker images
comando devuelve lo siguiente:
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
Pruebe
docker inspect
, por ejemplo:Pero ahora, con una imagen que existe, obtendrá mucha información, por ejemplo:
Y está en un bonito formato json.
fuente
images
y losps
comandos siempre salen con 0, coninspect
tan simple como:docker inspect "${image_id}:${image_tag}" > /dev/null 2>&1 || echo "does not exist!"
docker inspect
es genial debido al código de retorno distinto de cero cuando no existe ninguna imagen.docker images -q
.tldr:
A modo de demostración ...
éxito, imagen encontrada:
falla, falta la imagen:
Referencia:
https://docs.docker.com/engine/reference/commandline/image_inspect/
fuente
Puede utilizar como el siguiente:
O:
fuente
Con la ayuda de la respuesta de Vonc anterior, creé el siguiente script de bash llamado
check.sh
:Si lo usa para una imagen y una etiqueta existentes, se imprimirá
exists
, por ejemplo:Si lo usa para una imagen y una etiqueta que no existen, se imprimirá
doesn't exist
, por ejemplo:fuente
Utilizando
test
o en una línea
fuente
En caso de que esté intentando buscar una imagen de la ventana acoplable desde un registro de la ventana acoplable, supongo que la forma más fácil de verificar si una imagen de la ventana acoplable está presente es utilizando el servicio de lista de etiquetas de la API REST de Docker V2
Ejemplo:-
si el resultado anterior devuelve 200Ok con una lista de etiquetas de imagen, entonces sabemos que la imagen existe
si no ves algo como
entonces sabes con certeza que esa imagen no existe.
fuente
En el script bash hago esto para verificar si la imagen existe por etiqueta:
El script de ejemplo anterior verifica si existe una imagen mysql con etiqueta 5.6. Si solo desea verificar si existe alguna imagen de mysql sin una versión específica, simplemente pase el nombre del repositorio sin etiqueta como este:
fuente
Un poco de mi parte para muy buenos lectores:
Construir
Reloj
correr
fuente
para un nombre de etiqueta específico
para "cláusula similar" nombre de etiqueta: my_image_tag -> iniciar my_ima *
Si quieres algo de "la imagen", por ejemplo, elimina todas las imágenes. La etiqueta comenzó "my_ima", prueba esto.
fuente