Ich würde gerne wissen, wie Sie alle Tags eines Docker-Bilds in einer Remote-Docker-Registrierung (tutum in unserem Fall, aber ich glaube nicht, dass es darauf ankommt) mit der CLI (bevorzugt) oder curl? Am besten, ohne alle Versionen aus der Remote-Registrierung zu ziehen, möchte ich nur die Tags auflisten.Wie listet man alle Tags für ein Docker-Image in einer Remote-Registry auf?
Antwort
Ich bekam die Antwort von here. Danke vielmals! :)
nur einzeilige-Skript: (alle Tags von debain finden)
wget -q https://registry.hub.docker.com/v1/repositories/debian/tags -O - | sed -e 's/[][]//g' -e 's/"//g' -e 's/ //g' | tr '}' '\n' | awk -F: '{print $3}'
UPDATE Dank für das @ degelf Rat ab. Hier ist das Shell-Skript.
#!/bin/bash
if [ $# -lt 1 ]
then
cat << HELP
dockertags -- list all tags for a Docker image on a remote registry.
EXAMPLE:
- list all tags for ubuntu:
dockertags ubuntu
- list all php tags containing apache:
dockertags php apache
HELP
fi
image="$1"
tags=`wget -q https://registry.hub.docker.com/v1/repositories/${image}/tags -O - | sed -e 's/[][]//g' -e 's/"//g' -e 's/ //g' | tr '}' '\n' | awk -F: '{print $3}'`
if [ -n "$2" ]
then
tags=` echo "${tags}" | grep "$2" `
fi
echo "${tags}"
Sie können nur einen neuen Dateinamen dockertags
unter/usr/local/bin (oder fügen Sie eine PATH env auf Ihre .bashrc
/.zshrc
) erstellen und diese Code in sie. Fügen Sie dann die ausführbaren Berechtigungen hinzu (chmod +x dockertags
).
Verbrauch:
dockertags ubuntu
---> Liste Alle Tags von ubuntu
dockertags php apache
---> Liste alle php php-Tags enthalten 'Apache'
Sie können das Ganze in echo [backtick] '...' [backtick] verpacken, um es in eine Zeile zu verdichten.Und/oder ersetzen Sie "debian" durch $ 1 und setzen Sie es in ein Skript namens "dockertags" unter/usr/local/bin. Vor dem abschließenden Backtick kannst du | grep $ 2 hinzufügen. Dann chmod + x es, und dann können Sie "dockertags php apache" gehen, um alle PHP-Tags mit Apache zu sehen. – dagelf
@dagelf Danke. Ich habe meine Antwort aktualisiert. –
Das * ist * die Antwort, nach der ich suche! –
Die Docker Registry API hat einen Endpunkt zu list all tags.
Sieht aus wie Tutum hat eine similar endpoint, sowie eine Möglichkeit, über tutum-cli zuzugreifen.
Mit den tutum-cli, versuchen Sie Folgendes:
tutum tag list <uuid>
Ich glaube nicht, dass dies für Registry-Images funktioniert. Ich bekomme nur eine "Identifier '
Docker-Registrierungs-API-Verbindung ist ungültig – Dmitriusan
https://docs.docker.com/registry/spec/api/#listing-image-tags –
ich diese habe es geschafft, zu arbeiten curl mit:
curl -u <username>:<password> https://tutum.co/v1/repositories/<username>/<image_name>/tags
Beachten Sie, dass image_name
nicht Benutzerdaten usw. enthalten sollte Beispiel, wenn Sie drücken Bild mit dem Namen tutum.co/username/x
dann image_name
sollte x
sein.
Der v2-Endpunkt ist hier dokumentiert: https://docs.docker.com/registry/ spec/api/# listing-image-tags – morloch
Wenn die Parsing-Tool JSON, jq
wget -q https://registry.hub.docker.com/v1/repositories/debian/tags -O - | \
jq -r .[].name
Sie diesen Schrott auch verfügbar ist verwenden können:
(wie es ist) Nach# vim /usr/sbin/docker-tags
& anhängen:
#!/bin/bash
im="$1"
[[ -z "$im" ]] && { echo -e '\e[31m[-]\e[39m Where is the image name ??' ; exit ; }
[[ -z "$(echo "$im"| grep -o '/')" ]] && { link="https://hub.docker.com/r/library/$im/tags/" ; } || { link="https://hub.docker.com/r/$im/tags/" ; }
resp="$(curl -sL "$link")"
err="$(echo "$resp" | grep -o 'Page Not Found')"
if [[ ! -z "$err" ]] ; then
echo -e "\e[31m[-]\e[39m No Image Found with name => [ \e[32m$im\e[39m ]"
exit
else
tags="$(echo "$resp"|sed -e 's|}|\n|g' -e 's|{|\n|g'|grep '"result"'|sed -e 's|,|\n|g'|cut -d '[' -f2|cut -d ']' -f1|sed '/"tags":/d'|sed -e 's|"||g')"
echo -e "\e[32m$tags\e[39m"
fi
Machen Sie es ausführbar:
# chmod 755 /usr/sbin/docker-tags
schließlich Versuchen durch:
$ docker-tags testexampleidontexist
[-] No Image Found with name => [ testexampleidontexist ]
$ docker search ubuntu
$ docker-tags teamrock/ubuntu
latest
[Hope you vor dem Ausführen beliebigen Befehl bewusst $ & # sind]
curl -u <username>:<password> https://$your_registry/v2/$image_name/tags/list -s -o - | \
tr -d '{' | tr -d '}' | sed -e 's/[][]//g' -e 's/"//g' -e 's/ //g' | \
awk -F: '{print $3}' | sed -e 's/,/\n/g'
Sie es verwenden können, wenn Ihr env hat kein 'jq', =)
Wenn Sie die API von docker registry v2 verwenden möchten, werden Tags nach Seiten aufgelistet. Um alle Tags eines Bildes aufzulisten, möchten Sie möglicherweise der URL einen großen page_size-Parameter hinzufügen, z.
curl -L -s 'https://registry.hub.docker.com/v2/repositories/library/centos/tags?page_size=1024'|jq '."results"[]["name"]'
Docker Hub scheint page_size auf ein effektives Maximum von 100 zu begrenzen. – Shane
@Shane Oh wirklich? Ich habe kein Bild mit so vielen Seiten gefunden. Funktioniert eine URL wie https://registry.hub.docker.com/v2/repositories/library/centos/tags/?page=101? – 0xCC
das 'Java'-Bild ist ein gutes Beispiel. Ja, Sie können Dinge wie https://registry.hub.docker.com/v2/repositories/library/java/tags/?page_size=100&page=2 tun. Beispiele finden Sie unter den Links "next" und "previous" im Ergebnis. – Shane
Alle Tags von Docker Hub Get: Dieser Befehl wird mit dem Befehlszeile JSON
Prozessor jq
die Tag-Namen aus den JSON
wählen von dem Docker Hub Registry zurückgegeben (die Anführungszeichen mit tr
entfernt werden). Ersetzen Bibliothek mit dem Docker Hub Benutzernamen, debian mit dem Bild Name:
curl -s 'https://registry.hub.docker.com/v2/repositories/library/debian/tags/' | jq '."results"[]["name"]' | tr -d '"'
Bitte überlegen Sie eine kleine Erklärung, warum dies die Frage beantwortet, was es tut, ... –
Siehe CLI-Dienstprogramm: https://www.npmjs.com/package/docker-browse
Ermöglicht die Aufzählung von Tags und Bildern.
docker-browse tags <image>
listet alle Tags für das Bild auf. z.B. docker-browse tags library/alpine
docker-browse images
listet alle Bilder in der Registrierung auf. Derzeit nicht verfügbar für index.docker.io
.
Sie es zu jeder Registrierung eine Verbindung herstellen können, einschließlich private ein, solange es Docker Registry unterstützt HTTP API V2
- 1. Wie listet man alle Git-Tags auf?
- 2. Wie listet man alle Verzeichnisse rekursiv auf?
- 3. Wie listet man alle Elemente einer Anwendung auf?
- 4. Wie listet man ein Array zeilenweise auf einer JTextArea auf?
- 5. Wie listet man alle verfügbaren Gebietsschemata in Rails auf?
- 6. Wie listet man alle Tags in einem bestimmten Mercurial-Zweig auf?
- 7. Wie listet man alle Benutzer in der Mongo Shell auf?
- 8. Wie listet man alle Lesezeichen in NERDTree von VIM auf?
- 9. Wie listet man alle Umgebungsvariablen in Vim auf?
- 10. PostgreSQL: Wie listet man alle verfügbaren Datentypen auf?
- 11. Titan db wie listet man alle graphischen Indexe auf
- 12. Wie listet man alle Swift-konformen Klassen auf?
- 13. Wie listet man Tabs in vim auf?
- 14. Wie listet man alle X11-Fenster mit Gtk3 auf :: Gdk
- 15. Wie listet man alle Tags für Commits auf, die einen Satz von Dateien in Git erstellt haben?
- 16. Wie listet man alle internen Variablen von Julia auf?
- 17. Wie listet man alle Symbole auf, die em ++ gefunden hat?
- 18. Wie listet man die konfigurierten Repositories auf?
- 19. Listet alle ausstehenden Änderungslisten in einer Sandbox auf
- 20. Listet alle Tags innerhalb eines Moduls in CVS in CLI auf
- 21. Wie listet man aktive Submodule in einem Maven-Projekt auf?
- 22. Wie listet man alle Aufgaben für das Master-Projekt nur in Großbuchstaben auf? Vor
- 23. Listet alle Visualisierungen in Kibana auf 4.1.1
- 24. Wie listet alle instanziierten Objekte auf?
- 25. Wie listet man Aktivitäten auf, die einer Absicht entsprechen?
- 26. Remoteregistry Verwendung für 1.10.0 Ressource eines Mieters
- 27. Listet alle globalen Variablen in Node.js auf
- 28. Listet alle derzeit geöffneten Dateizugriffsnummern auf?
- 29. Wie listet man Verzeichnisse schneller auf?
- 30. Wie listet ich alle verfügbaren Tastaturlayouts in X.org auf?
ähnlich wie http://stackoverflow.com/questions/24481564/how-can-i-find- docker-image-mit-spezifischen-tag-in-docker-registrierung-in-docker-komma/32622147 # 32622147 – shadowbq