Einrichten eines Docker-Repository
Erfahren Sie, wie Sie Ihre Docker-Images speichern, entweder in einer selbst gehosteten lokalen Registry oder in einem Docker Hub-Repository. Auf diese Weise können Sie Ihre Docker-Images speichern und organisieren und Images für mehrere Teams freigeben.
"Registry" versus "Repository".
Ein Repository ist ein Ort, an dem Daten tatsächlich gespeichert werden. Eine Registry ist eine Sammlung von Verweisen auf diese Daten.
Der Katalog einer Bibliothek ist in diesem Beispiel die Registry, die Sie konsultieren würden, um den Standort des gewünschten Buches zu finden. Die eigentlichen Bücherregale der Bibliothek sind ihr Aufbewahrungsort.
Der Katalog einer Bibliothek ist in diesem Beispiel die Registry, die Sie konsultieren würden, um den Standort des gewünschten Buches zu finden. Die eigentlichen Bücherregale der Bibliothek sind ihr Aufbewahrungsort.
Anforderungen
- Grundkenntnisse in der Verwendung von Docker und Kommandozeilen-Befehlen.
- Docker wurde auf Ihrem System installiert und läuft dort.
- Eine Internetverbindung.
- Einen Domainnamen und eine funktionierende URL.
- Ein SSL-Zertifikat.
Sichern Sie sich Ihr SSL-Zertifikat
- Verschlüsselt Webseiten-Kommunikation
- Verhindert Sicherheits-Warnungen
- Verbessert Google-Platzierung
SSL-Zertifikat-Checker
Einrichten einer selbst gehosteten Docker-Registry
Docker bietet einen integrierten Registrierungsserver. Der Registry-Server läuft in einem Container, den Sie mit dem Befehl docker run starten können.
Um beispielsweise einen Registrierungsserver namens "my-registry" zu starten, lautet der Befehl:
Um beispielsweise einen Registrierungsserver namens "my-registry" zu starten, lautet der Befehl:
sudo docker run -d -p 5000:5000 --name my-registry registry:2
Wenn Sie eine Firewall verwenden, müssen Sie möglicherweise den Zugriff auf Port 5000 erlauben.
Image in Ihre selbst gehostete Registry verschieben
Der erste Schritt zur Verwendung Ihrer selbst gehosteten Registrierung besteht darin, ein Docker-Image für diese Registrierung mit dem Befehl docker tag zu markieren:
sudo docker tag [image name] localhost:5000/[image name]
Um beispielsweise das Image my-nginx für Ihre selbst gehostete Registry neu zu markieren, lautet der Befehl:
sudo docker tag my-nginx localhost:5000/my-nginx
Sie können dieses Image dann mit folgendem Befehl in Ihre Registry verschieben:
sudo docker push localhost:5000/[image name]
Der Befehl, um das Image, das wir im obigen Beispiel erstellt haben, zu verschieben, lautet:
sudo docker push localhost:5000/my-nginx
Abrufen eines Images aus Ihrer selbst gehosteten Registry
Der Befehl, um ein Image aus Ihrer Registry zu laden, lautet:
sudo docker pull localhost:5000/[image name]
Um beispielsweise das Image, das wir im obigen Beispiel erstellt haben, zu laden, lautet der Befehl:
sudo docker pull localhost:5000/my-nginx
Stoppen und Löschen Ihrer selbst gehosteten Registrierung
Wenn Sie einen Fehler machen oder einfach nur die von Ihnen erstellte Registrierung zusammen mit allen dort gespeicherten Images stoppen und entfernen möchten, verwenden Sie folgenden Befehl:
sudo docker stop [repository name] && docker rm -v [repository name]
Um zum Beispiel die von uns oben erstellte Registry mit Namen My-registry zu stoppen und zu entfernen, lautet der Befehl:
sudo docker stop my-registry && docker rm -v my-registry
Externen Zugriff auf Ihre selbst gehostete Registry ermöglichen
Bevor Sie mit der Freigabe Ihrer privaten Registry beginnen, müssen Sie den Zugriff mit TLS über ein SSL-Zertifikat sichern.
Erstellen Sie ein Verzeichnis namens certs in Ihrem Docker-Root-Verzeichnis. Auf den meisten Systemen ist dies das Verzeichnis /var/lib/docker:
Erstellen Sie ein Verzeichnis namens certs in Ihrem Docker-Root-Verzeichnis. Auf den meisten Systemen ist dies das Verzeichnis /var/lib/docker:
sudo mkdir /var/lib/docker/certs
Geben Sie IhreR SSL-Zertifikat-Datei (cert) den Namen domain.crt und Ihrem SSL-Schlüssel den Namen domain.key.
Wenn Sie eine bestehende, selbst gehostete Registry aktualisieren, müssen Sie diese mit folgendem Befehl stoppen:
Wenn Sie eine bestehende, selbst gehostete Registry aktualisieren, müssen Sie diese mit folgendem Befehl stoppen:
sudo docker stop [repository name]
Starten (oder restarten) Sie Ihre selbst gehostete Registry mit dem Befehl:
sudo docker run -d -p 5000:5000 --restart=always --name my-registry -v `pwd`/certs:/certs -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt -e REGISTRY_HTTP_TLS_KEY=/certs/domain.key registry:2
Zugriff auf Ihre selbst gehostete Registry von einem anderen Host aus
Um von einem anderen Host aus auf Ihre Registry zuzugreifen, verwenden Sie [ihre Domain]:5000/[Bildname].
Um beispielsweise ein Image mit dem Namen my-nginx an eine Registry zu übertragen, die auf example.com gehostet wird, müssen Sie zuerst das Image markieren:
Um beispielsweise ein Image mit dem Namen my-nginx an eine Registry zu übertragen, die auf example.com gehostet wird, müssen Sie zuerst das Image markieren:
sudo docker tag my-nginx example.com:5000/my-nginx
Sie können das Image dann mit folgendem Befehl verschieben:
sudo docker push example.com:5000/ubuntu
Um das gleiche Bild aus dieser Registry zu laden, verwenden Sie den Befehl:
sudo docker pull example.com:5000/ubuntu
Einrichten eines Docker Hub Repository
Die Docker Hub-Website ist ein praktischer Ort, um Ihre Docker-Images in der Cloud zu speichern und zu organisieren. Sie können diese Website verwenden, um Ihr eigenes öffentliches oder privates Repository zu hosten, den Benutzerzugriff auf das Repository zu verwalten und von überall online auf das Repository zuzugreifen.
Offizielle Images
Der Docker Hub ist auch ein ausgezeichneter Ort, um öffentliche Docker-Images zu durchsuchen. Beachten Sie, dass nur die mit "Official" gekennzeichneten Repositories die offiziellen Versionen der Images enthalten.
Wir empfehlen, dass Sie nur offizielle Docker-Images laden und ausführen.
Erstellen eines Docker-Hub-Kontos
Um zu beginnen, müssen Sie ein Docker-Hub-Konto einrichten. Füllen Sie Ihre Kontodaten auf der Hauptseite von Docker Hub aus und klicken Sie auf Anmelden.
Überprüfen Sie Ihr E-Mail-Konto auf eine Nachricht, um Ihre Kontoaktivierung abzuschließen, und melden Sie sich dann bei der Website an.
Jedes Docker-Hub-Konto kann eine Reihe von kostenlosen öffentlichen Repositories erstellen. Jedes Konto wird auch mit einem kostenlosen privaten Repository geliefert. Sie können gegen eine monatliche Gebühr weitere private Repositories erwerben.
Organisation und Teams Aufbauen
Mit Docker Hub können Sie Organisationen und Teams einrichten, um eine Reihe von Benutzern zu verwalten. Dies ist praktisch, wenn Sie mehrere verschiedene Personengruppen haben und deren Berechtigungen separat verwalten müssen.
Die drei Zugriffsebenen sind:
Die drei Zugriffsebenen sind:
- Lesen (kann nur Images laden, nicht verschieben)
- Schreiben (kann sowohl Images laden als auch verschieben)
- Admin (kann Images laden und verschieben sowie Benutzer hinzufügen und löschen)
Erstellen einer Organisation
Klicken Sie im Docker Hub Dashboard auf Organisation erstellen (Create Org.). Geben Sie die Details des Unternehmens ein und klicken Sie dann auf Erstellen.
Jedes Unternehmen beginnt mit einem Standardteam, das als Eigentümer (Owner) bezeichnet wird.
Um jemand anderen zu den Eigentümern hinzuzufügen, füllen Sie den Benutzernamen des Docker Hubs aus und klicken Sie auf das blaue +.
Um jemand anderen zu den Eigentümern hinzuzufügen, füllen Sie den Benutzernamen des Docker Hubs aus und klicken Sie auf das blaue +.
Einstellen Ihrer Organisation auf öffentlich oder privat
Unternehmen sind standardmäßig öffentlich. Um Ihre Organisation auf Privat einzustellen, klicken Sie auf der Hauptseite der Organisation auf Einstellungen (settings).
Klicken Sie auf Privat und dann auf Speichern.
Hinzufügen eines Teams
Um ein Team hinzuzufügen, wählen Sie Ihren Organisationsnamen aus dem Dropdown-Menü (falls er nicht bereits ausgewählt ist) und klicken Sie auf Teams.
Klicken Sie auf der Seite Teams auf Team hinzufügen (Create team).
Füllen Sie den Teamnamen und die Beschreibung aus und klicken Sie dann auf Hinzufügen.
Jedes Mal, wenn Sie jemanden zu einem Team hinzufügen, erhält er eine E-Mail von Docker Hub, die ihn über die Änderung informiert.
Erstellen eines Docker Hub Repository
Klicken Sie im Docker Hub Dashboard auf Repository erstellen.
Füllen Sie die Repository-Details aus (stellen Sie sicher, dass die Dropdown-Liste Sichtbarkeit entweder öffentlich oder privat ist), und klicken Sie dann auf Erstellen.
Auf der nächsten Seite finden Sie Details zu Ihrem neuen Repository, einschließlich des Docker Pull-Befehls für Ihre Images.
Einstellen des Teamzugriffs auf das Repository
Um den Zugriff auf Ihr Repository nach Team einzurichten, klicken Sie auf Teammitglieder (collaborators).
In unserem Beispiel haben wir zwei Teams:
Aus Sicherheitsgründen ist es ratsam, alle Docker-Hub-Benutzer in mindestens zwei Gruppen einzuteilen:
Um den Zugriff eines Teams festzulegen, wählen Sie das Team und die Zugriffsebene aus den Dropdown-Menüs aus und klicken Sie dann auf Team hinzufügen.
- Die QS-Abteilung jdoesoftwareqa, die Lese- (aber nicht Schreib-)Zugriff auf die Images benötigt.
- Die Entwickler jdoesoftwaredev, die sowohl Lese- als auch Schreibzugriff auf die Images benötigen.
Aus Sicherheitsgründen ist es ratsam, alle Docker-Hub-Benutzer in mindestens zwei Gruppen einzuteilen:
Um den Zugriff eines Teams festzulegen, wählen Sie das Team und die Zugriffsebene aus den Dropdown-Menüs aus und klicken Sie dann auf Team hinzufügen.
Zugriff auf das Docker Hub Repository über die Kommando-Zeile
Um über die Kommando-Zeile auf Ihr Docker Hub-Repository zugreifen zu können, müssen Sie sich zunächst mit dem von Ihnen auf der Website erstellten Login bei Docker Hub authentifizieren:
sudo docker login
Sie werden aufgefordert, Ihren Docker-Hub-Anmeldenamen, Ihr Passwort und Ihre E-Mail-Adresse anzugeben.
Sobald Sie sich angemeldet haben, können Sie mit den Befehlen docker push und docker pull auf Ihr Docker Hub Repository zugreifen.
Image in Ihr Docker Hub Repository verschieben
Um ein Image in Ihr Docker-Hub-Repository hochzuladen (Push), müssen Sie zunächst das Bild vorbereiten. Folgendes wird benötigt:
- Ihr Docker Hub-Benutzername oder der Name Ihrer Docker-Hub-Organisation.
- Der Name Ihres Docker-Hub-Repositorys.
- Optional: Ein Versions-Tag. (Wenn kein Tag angegeben ist, wird er standardmäßig auf "latest." gesetzt)
sudo docker tag [existing image name or ID] [Docker Hub username or organization]/[repository name]:[tag]
Wenn der Docker-Hub-Benutzer jdoe beispielsweise ein aktuelles Image mit dem Namen my-ubuntu-test in ein Docker-Hub-Repository mit dem Namen ubuntu-test hochladen und es mit einem Tag der Version 1.0 versehen möchte, müsste das Image zunächst mit folgendem Befehl umbenannt werden:
sudo docker tag my-ubuntu-test jdoe/ubuntu-test:1.0
Wenn jdoe plant, das Image in das Repository unter der Organisationseinheit jdoesoftware zu verschieben, dann lautet der Befehl:
sudo docker tag my-ubuntu-test jdoesoftware/ubuntu-test:1.0
Sie können überprüfen, ob das Image korrekt umbenannt wurde, indem Sie alle Docker-Images auf Ihrem System mit diesem Befehl auflisten:
sudo docker images
Als nächstes können Sie das Image mit folgendem Befehl in das Repository verschieben:
sudo docker push [Docker Hub username or organization name]/[repository name]:[tag]
Der Befehl, um das Image, das wir im vorherigen Beispiel umbenannt haben, zu verschieben, lautet:
sudo docker push jdoe/ubuntu-test:1.0
Oder:
sudo docker push jdoesoftware/ubuntu-test:1.0
Um zu überprüfen, ob das Image an den Docker Hub übertragen wurde, gehen Sie zum Docker-Hub-Dashboard und klicken Sie auf Details für Ihr Repository.
Klicken Sie auf der Repository-Seite auf Tags.
Hier werden die Versionen aufgelistet, die in das Repository verschoben wurden, zusammen mit der Zeit der letzten Aktualisierung.
Laden eines Images aus Ihrem Docker Hub Repository
Der Befehl zum Aufrufen eines Images aus Ihrem Docker Hub-Repository wird auf der Repository-Seite auf der Docker Hub-Website angezeigt.
Der Befehl lautet:
sudo docker pull [your Hub username or organization name]/[your Hub repository name]:[tag]
Um beispielsweise das Image jdoe/ubuntu-test:1.0 zu laden, das wir im obigen Abschnitt auf den Hub geschoben haben, lautet der Befehl:
sudo docker pull jdoe/ubuntu-test:1.0
Oder:
sudo docker pull jdoesoftware/ubuntu-test:1.0
Sie können überprüfen, ob das Image korrekt umbenannt wurde, indem Sie alle Docker-Images auf Ihrem System mit folgendem Befehl auflisten:
sudo docker images
Dedicated Server
Dedizierte Server mit modernsten Prozessoren - 100 % Enterprise-Hardware
- Minutengenaue Abrechnung
- Nur bei uns: Cloud-Funktionen