Chciałbym się dowiedzieć, czy obraz Dockera z określonym tagiem istnieje lokalnie. Dobrze, używając skryptu bash, jeśli klient Docker nie może tego zrobić natywnie.
Aby zapewnić kilka wskazówek dla potencjalnego skryptu bash, wynik uruchomienia docker images
polecenia zwraca:
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
Spróbuj
docker inspect
na przykład:Ale teraz, mając już istniejący obraz, otrzymasz kilka informacji, np .:
I to w ładnym formacie json.
źródło
images
ips
polecenia zawsze wyjść z 0, zeinspect
jest to tak proste, jak:docker inspect "${image_id}:${image_tag}" > /dev/null 2>&1 || echo "does not exist!"
docker inspect
jest świetny ze względu na niezerowy kod powrotu, gdy nie istnieje żaden obraz.docker images -q
.tldr:
Tytułem demonstracji ...
sukces, znaleziony obraz:
awaria, brak obrazu:
Odniesienie:
https://docs.docker.com/engine/reference/commandline/image_inspect/
źródło
Możesz użyć w następujący sposób:
Lub:
źródło
Z pomocą powyższej odpowiedzi Vonc stworzyłem następujący skrypt bash o nazwie
check.sh
:Użycie go do istniejącego obrazu i tagu spowoduje wydrukowanie
exists
, na przykład:Użycie go do nieistniejącego obrazu i tagu spowoduje wydrukowanie
doesn't exist
, na przykład:źródło
Za pomocą
test
lub w jednej linii
źródło
W przypadku, gdy próbujesz wyszukać obraz dockera z rejestru docker, myślę, że najłatwiejszym sposobem sprawdzenia, czy obraz dockera jest obecny, jest użycie usługi listy tagów interfejsu API REST Docker V2
Przykład:-
jeśli powyższy wynik zwraca 200Ok z listą tagów graficznych, to wiemy, że obraz istnieje
inaczej, jeśli zobaczysz coś takiego
wtedy wiesz na pewno, że ten obraz nie istnieje.
źródło
W skrypcie bash robię to, aby sprawdzić, czy obraz istnieje według tagu:
Przykładowy skrypt powyżej sprawdza, czy istnieje obraz mysql z tagiem 5.6. Jeśli chcesz po prostu sprawdzić, czy jakikolwiek obraz mysql istnieje bez określonej wersji, po prostu podaj nazwę repozytorium bez tagu w ten sposób:
źródło
Trochę ode mnie do bardzo dobrych czytelników:
Budować
Zegarek
Biegać
źródło
dla określonej nazwy tagu
dla zmiennej „like clause”: my_image_tag -> start my_ima *
jeśli chcesz coś „obraz” na przykład usunąć tag wszystkich obrazów uruchomiony „my_ima” spróbuj tego
źródło