Wie finde ich ein Docker image mit einem bestimmten tag in Docker-registry auf das Andockfenster Befehlszeile?
Ich versuche, suchen Sie einen bestimmten tag für ein Docker image. Wie kann ich es auf der Kommandozeile? Ich versuche zu vermeiden, um alle downloaden und entfernen Sie nicht mehr benötigte Bilder.
In den offiziellen Ubuntu-release, https://registry.hub.docker.com/_/ubuntu/, es gibt mehrere tags (Version es), während, wenn Suche ich es auf der Kommandozeile,
user@ubuntu:~$ docker search ubuntu | grep ^ubuntu
ubuntu Official Ubuntu base image 354
ubuntu-upstart Upstart is an event-based replacement for ... 7
ubuntufan/ping 0
ubuntu-debootstrap 0
Auch in der Hilfe von Kommandozeilen -search
https://docs.docker.com/engine/reference/commandline/search/, keine Ahnung, wie es funktionieren kann?
Ist es möglich, in der docker search
Befehl?
Wenn ich einen raw-Befehl zum suchen über die Docker-registry-API, dann werden die Informationen abgerufen werden können:
$ curl https://registry.hub.docker.com//v1/repositories/ubuntu/tags | python -mjson.tool
[
{
"layer": "ef83896b",
"name": "latest"
},
.....
{
"layer": "463ff6be",
"name": "raring"
},
{
"layer": "195eb90b",
"name": "saucy"
},
{
"layer": "ef83896b",
"name": "trusty"
}
]
Du musst angemeldet sein, um einen Kommentar abzugeben.
Soweit ich weiß, die CLI erlaubt nicht die Suche/Liste von tags in einem repository.
Aber wenn Sie wissen, welchen tag Sie wollen, können Sie ziehen, dass Sie explizit, indem ein Doppelpunkt und die Bild-name:
docker pull ubuntu:saucy
Bei der Verwendung von CoreOS
jq
erhältlich ist das Parsen der JSON-Daten.So, wie Sie Taten, bevor, Blick auf
library/centos
Den cleaner v2 API ist nun verfügbar, und das ist, was ich verwende in dem Beispiel. Ich Baue ein einfaches Skript
docker_remote_tags
:Ermöglicht:
Referenz:
jq
: https://stedolan.github.io/jq/ |apt-get install jq
Ich wusste nicht, wie jede der oben genannten Lösungen, weil A) Sie benötigten externen Bibliotheken, die ich nicht habe und nicht installieren möchten. B) ich habe nicht alle Seiten.
Dem Docker-API Grenzen, die Sie zu 100 Elemente pro Anfrage. Diese Schleife wird über jede "weiter" und Sie erhalten alle (für Python seine 7 Seiten; die andere kann mehr oder weniger.. hängt)
, Wenn Sie wirklich wollen, um das spam-Problem selbst, entfernen
| cut -d '-' -f 1
aus der letzten Zeile, und Sie werden sehen, absolut alles.Beispiel-Ausgabe:
Wenn Sie möchten, dass die
bash_profile
version:Und nennen Sie es einfach:
docker-tags redis
Beispiel-Ausgabe:
Dieses Skript (docker-show-repo-tags.sh) sollte Arbeit für alle Andockfenster aktiviert host, der über curl, sed, grep und sort. Dieser wurde aktualisiert, um die Tatsache der repository-tag-URLs geändert.
Diese ältere version nicht mehr funktioniert.
Dies ist der Ausgang für eine einfache Beispiel:
curl -s -S "https://registry.hub.docker.com/v2/repositories/library/centos/tags/" | jshon -e results -a -e name -u
Aber deiner ist besser, die integrierten toolsSchrieb ich ein Kommandozeilen-tool zur Vereinfachung der Suche DockerHub repo-tags, in meinem PyTools GitHub repo. Es ist einfach zu bedienen mit verschiedenen Befehlszeilenoptionen, aber die meisten im Grunde:
Es ist auch erhältlich als docker-image und kann zu mehreren repos:
Wenn Sie einbetten möchten, in Skripten verwenden -q /--quiet zu bekommen, nur die tags, wie normale docker-Befehle:
Die v2 API zu verwenden irgendeine Art von Paginierung, so dass es nicht zurück, alle verfügbaren tags. Dies ist deutlich sichtbar in Projekten wie
python
(oderlibrary/python
). Auch nach schnell Lesen Sie die Dokumentation, ich konnte nicht verwalten die Arbeit mit der API korrekt (vielleicht ist es das falsche Dokumentation).Dann schrieb ich das script über die API v1, und immer noch mit
jq
:Dem gesamten Skript ist verfügbar unter: https://bitbucket.org/denilsonsa/small_scripts/src/default/docker_remote_tags.sh
Habe ich auch geschrieben (in Python) eine verbesserte version, die Aggregate-tags, die auf der gleichen version: https://bitbucket.org/denilsonsa/small_scripts/src/default/docker_remote_tags.py
Fügen Sie diese Funktion hinzu .der zshrc Datei, oder führen Sie den Befehl mannually
Dank dieser -> Wie, um eine Liste aller tags, die für ein Docker-image auf einem remote-Registrierung?
Reimplementierung des früheren post, mit Python über sed/awk:
import
Anweisungen am Anfang?Für ein Skript, das funktioniert mit Oauth bearer Token auf Docker hub, versuchen Sie dies:
Auflistung der tags eines Docker-image auf eine Docker-hub, der durch die HTTP-API
Können Sie Visual Studio Code zu bieten AutoVervollständigen für verfügbare docker-images und-tags. Dies erfordert allerdings, dass Sie geben Sie den ersten Buchstaben von einem tag, um zu sehen, AutoVervollständigen-Vorschläge.
Beispielsweise beim schreiben
FROM ubuntu
es bietet AutoVervollständigen-Vorschläge wieubuntu
,ubuntu-debootstrap
undubuntu-upstart
. Beim schreibenFROM ubuntu:a
es bietet eine AutoVervollständigen-Vorschläge wieubuntu:artful
undubuntu:artful-20170511.1