2015-11-30 12 views
59

Ich bin verwirrt über den Unterschied zwischen Docker-Register und Repositories. Es scheint, als ob die Docker-Dokumentation die beiden Wörter synonym verwendet. Auch Repositories werden manchmal bezeichnet als Bilder, wie dies von ihren docs:Unterschied zwischen Docker Registrierung und Repository

Um ein Repository zu seinem Register zu schieben, Sie genannt haben müssen ein Bild oder verpflichtet sich, Ihre Behälter auf ein benanntes Bild als Wir haben hier gesehen.

Jetzt können Sie dieses Repository an die Registrierung senden, die durch seinen Namen oder das Tag bezeichnet wird.

Wie können Sie ein Repository in eine Registrierung verschieben? Schieben Sie das Bild nicht zum Repository?

+3

was Docker Bilder vs Docker Repositories? –

+0

für Bilder vs Repositories: https://stackoverflow.com/questions/31115098/in-docker-what-is-the-difference-between-an-image-and-a-repository – wisbucky

Antwort

75

Docker Registrierung ist ein Dienst, der Ihre Docker-Bilder speichert.

Docker Registrierung durch einen Dritten, wie öffentliche oder private Registrierung, wie eine der folgenden Register gehostet werden:

oder Sie können die Docker-Registrierung selbst hosten
(siehe https://docs.docker.com/docker-trusted-registry/ für weitere Details).

Docker Repository ist eine Sammlung von verschiedenen Docker Images mit demselben Namen, die verschiedene Tags haben. Tag ist eine alphanumerische Kennung des Bildes in einem Repository.

Zum Beispiel siehe 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 auf dem Docker-Hub. Docker Hub ist eine Docker Registry, die von Docker gehostet wird.

Um mehr lesen herauszufinden:

+5

Artifactory ist ein zu der Liste hinzufügen ;) Wir verwenden das – buildmaestro

+1

Und das ist der Link für Artifactory - https://www.jfrog.com/confluence/display/RTF/Docker+Registry – JBaruch

+0

Was ist der Unterschied zwischen Repository und Bilder in Docker? –

33

Aus dem Buch Using Docker, Developing and deploying Software with Containers

Register, Repositorys, Bilder und Schlagwörter

Es gibt ein hierarchisches System zum Speichern von Bildern. wird die folgende Terminologie verwendet:

Registry

Ein Dienst verantwortlich für das Hosting und Verteilung von Bildern. Die Standardregistrierung ist der Docker Hub.

Repository

Eine Sammlung von verwandten Bildern (in der Regel unterschiedliche Versionen derselben Anwendung oder Service Providing).

Tag

Eine alphanumerische Kennung, um Bilder in einem Endlager befestigt (beispielsweise 14,04 oder stabil).

So wird der Befehl docker pull amouat/revealjs:latest das Bild mit der letzten Markierung im amouat/revealjs Repository aus der Docker Hub-Registrierung herunterladen.

+0

. Kann man also mehrere Tags für ein einzelnes Bild haben? –

+0

@charlie Ja. Zum Beispiel haben "ubuntu: latest" und "ubuntu: 16.04" gerade die gleiche "Image ID", was bedeutet, dass es sich nur um mehrere Tags für dasselbe Bild handelt. – wisbucky

+0

Wo diese Panne ist in der Dokumentation für 'Docker Pull', die teilweise liest:" Um ein bestimmtes Bild oder eine Reihe von Bildern (dh ein Repository) herunterladen, verwenden Sie 'Docker ziehen'. Wenn kein Tag vorgesehen ist, Docker Engine verwendet standardmäßig das ': latest'-Tag." Wie würde man dann "eine Reihe von Bildern herunterladen (d. H. Ein Repository)"? –

4

Ergänzend zu den Informationen:

  • Sie drücken in der Regel ein Repository einer Registrierung (und alle Bilder, die ein Teil davon sind). Aber Sie können ein einzelnes Bild in eine Registrierung verschieben. In allen Fällen verwenden Sie docker push.
  • Ein Bild hat eine 12 hexadezimale Bildnummer, sondern auch durch gekennzeichnet: namespace/repo-name:tag
  • Das Bild voller Name von den Registrierung Hostnamen und Port werden kann optional das Präfix: myregistryhost:5000/namespace/repo-name:tag
  • Konvention Eine gemeinsame Namensgebung ist um Ihren Registrierungsbenutzernamen als "Namespace" zu verwenden.
+1

Ich verstehe, was du sagst, aber technisch gibt es so etwas wie 'image-name' nicht. Das Format sollte 'user-name/repo-name: tag' sein, entsprechend [Docker Dokumentation] (https: //docs.docker.com/docker-hub/repos/# pushing-ein-repository-image-to-docker-hub). (Ich wünschte, Docker hätte eine bessere Terminologie verwendet, es ist ziemlich verwirrend und sie sind nicht immer konsistent). – wisbucky

+0

@wisbucky Danke! Ich habe meine Antwort aktualisiert. Tatsächlich war die Dokumentation nicht so gut, als ich diese Frage vor einem Jahr beantwortete. Zum Beispiel, damals habe ich ein Problem auf dem Docker Github Repo erstellt, weil das Docker-Glossar nicht "Layer" und "Namespace" (!) –

+0

Und wie funktioniert Docker die IP-Adresse einer öffentlichen Registrierung, wenn Sie nur etwas setzen wie nimmis/docker-alpin-java: neuste – Adam

0

A Andockfensters Repository ist eine nette Kombination von registry und image.

docker tag foo <registry>/<image>:<tag> 

ist die gleiche wie

docker tag foo <repository>:<tag> 
Verwandte Themen