Wie funktionieren Docker-Container-Registrys?

0
127

Docker-Container-Registrys wie der Docker Hub sind Plattformen zum Hosten und Teilen von Docker-Containern . Während sich der standardmäßige Docker Hub auf öffentliche Container konzentriert, führen die meisten Cloud-Anbieter wie AWS und GCP ihre eigenen privaten Container-Registrys.

Was sind Docker-Registries?

Container-Registrys sind ein Online-Speicher- und Verteilungssystem für benannte Docker-Images. Es ist einem Paketmanager wie NPM ziemlich ähnlich, da er auch verschiedene Versionen von Bildern speichern kann. Jeder mit einem Registrierungskonto kann sich anmelden und erstellte Images hochladen, indem er docker push mit einem username/imagename-Parameter ausführt:

docker push anthonyheddings/testcontainer

Wenn Sie diesen Container dann woanders verwenden möchten, können Sie ihn auf die gleiche Weise herunterladen:

docker pull anthonyheddings/testcontainer

Es sei denn, Sie erstellen Ihr Image von Grund auf neu, Sie sind wahrscheinlich vom Docker Hub ziehen. Der Docker Hub ist die standardmäßige Docker-Registry.

Wenn Sie ein Dockerfile für Ihre Anwendung schreiben, können Sie Images aus dem Docker Hub mit dem FROM-Befehl erweitern:

FROM ubuntu Advertisement

Bei einigen Containern wie Ubuntu handelt es sich um offizielle Docker-Images. Das bedeutet, dass sie so weit verbreitet sind, dass Sie den Benutzernamen, der sie hochgeladen hat, nicht angeben müssen (was überflüssig sein kann, wenn Sie nur ubuntu/ubuntu eingeben).

Tagging-Container

Container in Docker-Registrys sind in Repositories organisiert. Sie sind dem Konzept von Git-Repositorys ziemlich ähnlich, außer dass Container anstelle von Branches mit unterschiedlichen Tags organisiert sind.

Tags sind einfach Bezeichnungen, die eine bessere Möglichkeit bieten, Versionskontrolle und Releases zu verwalten. Sie können sie jedem abgeschlossenen Build zuweisen. Anstatt auf die Build-ID zu verweisen, können Sie ein Bild mit einem Label im Format major.minor.patch versehen und leicht erkennen, welches Bild welches ist oder welches Format Ihre Organisation bevorzugt.

Wenn Sie kein Tag angeben, wendet Docker automatisch das “neueste” Schild. Jedes Mal, wenn Sie ein Bild aus dem Hub abrufen, ziehen Sie wahrscheinlich das neueste, es sei denn, Sie geben eine Versionsnummer an.

Sie können das Docker-Tag verwenden, um Bilder manuell zu taggen, aber es ist viel einfacher, verwenden Sie -t mit Docker-Build.

 Docker-Build -t-Nutzername/image:tag . Werbung

Wenn Sie das Image an den Docker Hub oder eine andere Registry übertragen, können Sie je nach Tag verschiedene Versionen herunterladen.

Alternativen zu Docker Hub

Der Docker Hub ist der Standard. Wenn Sie also keinen anderen angeben, wird bei allen Docker-Befehlen, die mit Registrierungen funktionieren, standardmäßig Hub.docker.com angehängt.

Viele Cloud-Anbieter bieten jedoch ihre eigenen Docker-Registrys als Service an, die normalerweise in die anderen von ihnen bereitgestellten containerbezogenen Dienste integriert werden. Es gibt beispielsweise Google Container Registry, das gut mit Cloud Run und seinem Kubernetes-Dienst funktioniert.

Sie können zu einer neuen Registry wechseln, indem Sie einfach die Registry-URL allen Containerverweisen voranstellen. Für GCR wäre das gcr.io:

gcr.io/anthonyheddings/test

Ähnlich wie bei Docker Hub müssen Sie sich mit Docker-Login bei der Registry anmelden.

AWS hat Elastic Container Registry, das gut mit Elastic Container Service und Elastic Kubernetes Service funktioniert.

Azure hat die Azure Container Registry, die mit seinem Kubernetes-Dienst funktioniert.