J'aimerais savoir si une image Docker avec une balise spécifique existe localement. Je vais bien en utilisant un script bash si le client Docker ne peut pas le faire de manière native.
Juste pour fournir quelques conseils pour un script bash potentiel, le résultat de l'exécution de la docker images
commande renvoie ce qui suit:
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
Essayez
docker inspect
, par exemple:Mais maintenant, avec une image qui existe, vous obtiendrez un tas d'informations, par exemple:
Et c'est dans un joli format json.
la source
images
et lesps
commandes se terminent toujours par 0, avecinspect
c'est aussi simple que:docker inspect "${image_id}:${image_tag}" > /dev/null 2>&1 || echo "does not exist!"
docker inspect
est génial en raison du code de retour différent de zéro lorsqu'aucune image n'existe.docker images -q
.tldr:
En guise de démonstration ...
succès, image trouvée:
échec, image manquante:
Référence:
https://docs.docker.com/engine/reference/commandline/image_inspect/
la source
Vous pouvez utiliser comme suit:
Ou:
la source
Avec l'aide de la réponse de Vonc ci-dessus, j'ai créé le script bash suivant nommé
check.sh
:Son utilisation pour une image et une étiquette existantes s'imprimera
exists
, par exemple:En l'utilisant pour une image et une balise non existantes
doesn't exist
, vous imprimerez , par exemple:la source
En utilisant
test
ou en une ligne
la source
Si vous essayez de rechercher une image docker à partir d'un registre docker, je suppose que le moyen le plus simple de vérifier si une image docker est présente est d'utiliser le service de liste de balises API REST Docker V2
Exemple:-
si le résultat ci-dessus renvoie 200Ok avec une liste de balises d'image, alors nous savons que l'image existe
sinon si vous voyez quelque chose comme
alors vous savez avec certitude que l'image n'existe pas.
la source
Dans le script bash, je fais ceci pour vérifier si l'image existe par tag:
L'exemple de script ci-dessus vérifie si l'image mysql avec la balise 5.6 existe. Si vous voulez simplement vérifier si une image mysql existe sans version spécifique, passez simplement le nom du référentiel sans balise comme suit:
la source
Juste un peu de moi aux très bons lecteurs:
Construire
Regarder
Courir
la source
pour un nom de tag spécifique
pour le nom de variable "clause like": my_image_tag -> start my_ima *
si vous voulez quelque chose "l'image" par exemple supprimer toutes les images tag commencé "my_ima" essayez ceci
la source