Ich bin verwirrt über den Unterschied zwischen Docker-Registern und Repositories. In der Docker-Dokumentation werden die beiden Wörter anscheinend synonym verwendet. Außerdem werden Repositorys manchmal als Bilder bezeichnet, wie z. B. in ihren Dokumenten:
Um ein Repository in seine Registrierung zu verschieben, müssen Sie ein Image benannt oder Ihren Container einem benannten Image zugewiesen haben, wie wir hier gesehen haben.
Jetzt können Sie dieses Repository in die Registrierung verschieben, die durch den Namen oder das Tag gekennzeichnet ist.
Wie können Sie ein Repository in eine Registrierung verschieben? Verschieben Sie das Bild nicht in das Repository?
git
, dann - Docker Registry (Standard isthub.docker.com
) => GitHub (github.com
); - Docker Repository => Git Repository; - Docker Tag => Git Ref (Zweig / Tag)Antworten:
Die Docker-Registrierung ist ein Dienst, der Ihre Docker-Images speichert.
Die Docker-Registrierung kann von einem Dritten als öffentliche oder private Registrierung gehostet werden, z. B. eine der folgenden Registrierungen:
oder Sie können die Docker-Registrierung selbst hosten
( weitere Informationen finden Sie unter https://docs.docker.com/ee/dtr/ ).
Das Docker-Repository ist eine Sammlung verschiedener Docker-Images mit demselben Namen und unterschiedlichen Tags. Tag ist eine alphanumerische Kennung des Bildes in einem Repository.
Siehe beispielsweise https://hub.docker.com/r/library/python/tags/ . Es gibt viele verschiedene Tags für das offizielle Python-Image. Diese Tags sind alle Mitglieder des offiziellen Python-Repositorys im Docker Hub. Docker Hub ist eine Docker-Registrierung, die von Docker gehostet wird.
Um mehr zu erfahren, lesen Sie:
quelle
Aus dem Buch Verwenden von Docker, Entwickeln und Bereitstellen von Software mit Containern
Registries, Repositories, Bilder und Tags
Es gibt ein hierarchisches System zum Speichern von Bildern. Die folgende Terminologie wird verwendet:
Registrierung
Ein Dienst, der für das Hosten und Verteilen von Bildern verantwortlich ist. Die Standardregistrierung ist der Docker Hub.
Repository
Eine Sammlung verwandter Bilder (die normalerweise verschiedene Versionen derselben Anwendung oder desselben Dienstes bereitstellen).
Etikett
Eine alphanumerische Kennung, die an Bilder in einem Repository angehängt ist (z. B. 14.04 oder Stable).
Der Befehl
docker pull amouat/revealjs:latest
lädt also das zuletzt imamouat/revealjs
Repository getaggte Image aus der Docker Hub-Registrierung herunter .quelle
ubuntu:latest
undubuntu:16.04
haben das gleicheImage ID
, was bedeutet, dass sie nur mehrere Tags für das gleiche Bild sind.docker pull
, die teilweise lautet: "Um ein bestimmtes Bild oder eine Reihe von Bildern (dh ein Repository) herunterzuladen, verwenden Siedocker pull
. Wenn kein Tag angegeben ist, verwendet Docker Engine das:latest
Tag als Standard. "" Wie würde man dann "einen ... Satz von Bildern (dh ein Repository) herunterladen"? 🤔Ergänzung der Informationen:
docker push
.namespace/repo-name:tag
myregistryhost:5000/namespace/repo-name:tag
quelle
image-name
. Das Format sollteuser-name/repo-name:tag
gemäß der Docker-Dokumentation sein . (Ich wünschte, Docker hätte eine bessere Terminologie verwendet, das ist ziemlich verwirrend und sie sind nicht immer konsistent).docker info |grep Registry
Ein Docker-Repository ist eine nette Kombination aus
registry
undimage
.ist das gleiche wie
quelle
Docker Registry ist ein Dienst, den Sie entweder selbst hosten können (vertrauenswürdig und privat) oder Docker Hub als Host für diesen Dienst festlegen können. Wenn Ihre Software kommerziell ist, haben Sie diese normalerweise als "Private and Trusted" -Registrierung gehostet. Für Java-Entwickler ist dies etwas analog zum Setup von Maven Artifactory.
Docker Repository ist eine Reihe von "Tagged" -Bildern. Ein Beispiel ist, dass Sie möglicherweise 5
ubuntu:latest
Bilder markiert haben :a) Nano-Editor (image1_tag: v1)
b) Eine bestimmte Software 1 (image1_tag: v2)
c) Sudo (image1_tag: v3)
d) Apache-http-Daemon (image1_tag: v4)
e) Kater (image1_tag: v5)
Mit dem
docker push
Befehl können Sie jedes der oben genannten Bilder in Ihr Repository übertragen. Solange die Repository-Namen übereinstimmen, werden sie erfolgreich übertragen und unter dem von Ihnen ausgewählten Repository angezeigt und korrekt markiert.Ihre Frage lautet nun: "Wo wird dieses Repository gehostet / wer verwaltet den Dienst?" Hier kommt die Docker-Registrierung ins Spiel. Standardmäßig erhalten Sie eine Docker-Hub-Registrierung (Open Source), mit der Sie Ihr privates / öffentliches Repository verwalten können. Ohne Änderungen werden Ihre Bilder in Ihr privates Repository im Docker-Hub verschoben. Eine Beispielausgabe beim Verschieben Ihrer Bild-Tags lautet wie folgt:
Wenn Sie sofort
docker images --digests -a
eingeben, können Sie bestätigen, dass Ihre Push-Image-Tags jetzt eine neue Signatur für das private Repository anzeigen, das von der Docker-Hub-Registrierung verwaltet wird.quelle
Docker Hub und andere Repository-Hosting-Dienste von Drittanbietern werden als "Registries" bezeichnet. Eine Registrierung speichert eine Sammlung von Repositorys.
Da eine Registrierung viele Repositorys haben kann und ein Repository viele verschiedene Versionen desselben Images haben kann, die einzeln mit Tags versioniert sind.
quelle