Implementierung der Bereitstellung eines privaten Docker-Warehouse-Registrars

Implementierung der Bereitstellung eines privaten Docker-Warehouse-Registrars

Da immer mehr Docker-Images verwendet werden, muss es einen Ort zum Speichern der Images geben, nämlich das Warehouse. Derzeit werden häufig zwei Arten von Lagern verwendet: öffentliche Lager und private Lager. Am bequemsten ist es, öffentliche Repositorien zum Hoch- und Herunterladen zu verwenden. Sie müssen sich nicht registrieren, um Bilder aus öffentlichen Repositorien herunterzuladen, aber beim Hochladen müssen Sie sich registrieren.

Die am häufigsten verwendeten privaten Lager sind Registry und Harbor. Als Nächstes werde ich ausführlich erläutern, wie man ein privates Registry-Lager erstellt. Harbor wird im nächsten Blogbeitrag vorgestellt.

1. Stellen Sie ein privates Registry-Warehouse bereit

Fallbeschreibung

Zwei CentOS7.4-Maschinen, eine für das private Docker-Repository und die andere für den Docker-Client zum Testen;

Beide Server müssen den Docker-Dienst installieren. Weitere Informationen finden Sie im Blogbeitrag: Installieren Sie die Docker.v19-Version

1. Konfigurieren Sie das private Registrierungslager

[root@centos01 ~]# echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf  
    <!--Routing-Funktion auf Docker-Host aktivieren-->
[root@centos01 ~]# sysctl -p <!--Konfiguration aktualisieren-->
net.ipv4.ip_forward = 1
[root@centos01 ~]# vim /etc/docker/daemon.json <!--Image-Beschleunigung konfigurieren-->
{"registry-mirrors":["https://6kx4zyno.mirror.aliyuncs.com"]} <!--Alibaba Cloud Acceleration hinzufügen-->
[root@centos01 ~]# systemctl reload docker <!--Starten Sie den Docker-Dienst neu-->
[root@centos01 ~]# Docker-Suche nach Registrierungsabbild <!--Suche nach Registrierungsabbild-->
<!--Das Registrierungsabbild kann je nach Situation direkt heruntergeladen werden oder nicht-->
[root@centos01 ~]# docker run -d -p 5000:5000 --name registry --restart=always -v /opt/registry:/var/lib/registry registry
 <!--Führen Sie den Registrierungscontainer aus und führen Sie den Registrierungsdienst aus, um sein eigenes Image zu speichern-->
 <!--Der Parameter „--restart=always“ bedeutet, dass dieser Container nach dem Start des Docker-Dienstes gestartet wird-->
[root@centos01 ~]# docker ps <!--Den von Docker ausgeführten Container anzeigen-->
CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN
a7773d77b8a3 Registrierung "/entrypoint.sh /etc…" vor 50 Sekunden Aktiv seit 46 Sekunden 0.0.0.0:5000->5000/tcp Registrierung
[root@centos01 ~]# Docker-Images <!--Alle Docker-Images anzeigen-->
REPOSITORY TAG BILD ID ERSTELLT GRÖSSE
Registrierung aktuell 708bc6af7e5e vor 3 Monaten 25,8 MB
Tomcat aktuell 1b6b1fe7261e vor 5 Tagen 647 MB
hub.c.163.com/public/centos 6.7-tools b2ab0ed558bb vor 3 Jahren 602 MB
[root@centos01 ~]# vim /etc/docker/daemon.json <!--Docker-Dienst zur Unterstützung des Registrierungsdienstes konfigurieren-->
{"registry-mirrors":["https://6kx4zyno.mirror.aliyuncs.com"],
"insecure-registries":["192.168.100.10:5000"] <!--Fügen Sie diese Zeile hinzu-->
}
[root@centos01 ~]# systemctl reload docker <!--Starten Sie den Docker-Dienst neu-->

2. Laden Sie das Bild in das private Registrierungslager hoch

[root@centos01 ~]# Docker-Tag hub.c.163.com/public/centos:6.7-tools 192.168.100.10:5000/image/centos:6.7  
    <!--Bild-Tag ändern-->
[root@centos01 ~]# docker push 192.168.100.10:5000/image/centos:6.7 <!--Laden Sie das Image in das private Lager der Registrierung hoch-->

2. Konfigurieren Sie den Docker-Client für den Zugriff auf das private Repository

<!--Docker-Dienst auf dem Client installieren und Image-Beschleunigung konfigurieren-->
[root@centos02 ~]# vim /etc/docker/daemon.json <!--Docker zur Unterstützung des Registrierungsdienstes konfigurieren-->
{"registry-mirrors":["https://6kx4zyno.mirror.aliyuncs.com"],
"insecure-registries":["192.168.100.10:5000"] <!--Fügen Sie diese Zeile hinzu-->
}
[root@centos02 ~]# systemctl restart docker <!--Docker-Dienst neu starten-->
[root@centos02 ~]# Docker Pull 192.168.100.10:5000/Image/centos:6.7 
         <!--Der Client lädt das Bild im privaten Lager herunter-->
[root@centos02 ~]# Docker-Images <!--Überprüfen Sie, ob das Image erfolgreich heruntergeladen wurde-->
REPOSITORY TAG BILD ID ERSTELLT GRÖSSE
192.168.100.10:5000/image/centos 6.7 b2ab0ed558bb vor 3 Jahren 602 MB

An diesem Punkt wurde das private Lager der Registrierung erstellt, aber jetzt gibt es ein Problem. Wenn dies auch bereitgestellt wird, können alle Mitarbeiter im Unternehmen auf unser privates Lager zugreifen. Aus Sicherheitsgründen fügen wir eine Authentifizierung für die Registrierung hinzu. Erst nach Bestehen der Authentifizierung können Sie das Bild im privaten Lager hoch- oder herunterladen.

3. Konfigurieren Sie die Registrierung zum Laden der Authentifizierung

[root@centos01 ~]# yum -y install httpd-tools <!--Verschlüsselungstool httpd-tools installieren-->
[root@centos01 ~]# mkdir /opt/registry-auth <!--Ein Verzeichnis zum Speichern der Bestätigungsschlüssel erstellen-->
[root@centos01 ~]# htpasswd -Bbn bob pwd@123 > /opt/registry-auth/htpasswd
 <!--Konfigurieren der Registrierungsauthentifizierungsdatenbank-->
<!--"-Bbn" Parametererklärung: B erzwingt die Kennwortverschlüsselung; b gibt das Kennwort im Befehl ein und fordert nicht zur Kennworteingabe auf; n aktualisiert die Schlüsseldatei nicht -->

<!--Löschen Sie alle Container auf diesem Server und generieren Sie dann einen neuen privaten Warehouse-Container, der eine Authentifizierung erfordert-->
[root@centos01 ~]# docker run -d -p 5000:5000 --restart=always \
-v /opt/registry-auth/:/auth/ \
-v /opt/registry:/var/lib/registry --name registry-auth -e "REGISTRY_AUTH=htpasswd" \
-e "REGISTRY_AUTH_HTPASSWD_REALM=Registrierungsbereich" \
-e "REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd" Registrierung 
 <!--Führen Sie einen privaten Registry-Image-Repository-Container erneut aus, der Authentifizierung unterstützt-->
[root@centos01 ~]# Docker-Tag Tomcat:latest 192.168.100.10:5000/image/tomcat:1.0 
    <!--Spiegeländerungs-Tag-->
[root@centos01 ~]# docker push 192.168.100.10:5000/image/tomcat:1.0 
<!--Testen Sie, ob Sie ein Bild ohne Identitätsauthentifizierung in ein privates Repository hochladen können-->
keine grundlegenden Authentifizierungsdaten
<!--Meldet an, dass keine Identitätsüberprüfung erfolgt und der Upload nicht durchgeführt werden kann-->
[root@centos01 ~]# Docker-Login 192.168.100.10:5000 
    <!--Melden Sie sich beim privaten Bild-Repository an und laden Sie das Bild hoch, nachdem Sie die Identitätsauthentifizierung bestanden haben-->
Benutzername: bob <!--Geben Sie bob ein-->
Passwort: <!--Passwort eingeben-->
……………… <!--Hier wurde ein Teil des Inhalts ausgelassen-->
Anmeldung erfolgreich <!--Authentifizierung erfolgreich, jetzt können Sie das Bild in das private Lager hochladen-->
[root@centos01 ~]# docker push 192.168.100.10:5000/image/tomcat:1.0 <!--Laden Sie das Image erneut in das private Warehouse hoch-->
Der Push bezieht sich auf das Repository [192.168.100.10:5000/image/tomcat]
b0ac242ce8d3: Geschoben
5e71d8e4cd3d: Geschoben
eb4497d7dab7: Geschoben
bfbfe00b44fc: Geschoben
d39111fb2602: Gedrückt
155d997ed77c: Geschoben
88cfc2fcd059: Geschoben
760e8d95cf58: Geschoben
7cc1c2d7e744: Geschoben
8c02234b8605: Geschoben
1.0: Digest: sha256:55b41e0290d32d6888aee2e9a15f03cc88d2f49d5ad68892c54b9527d0ed181c Größe: 2421
[root@centos02 ~]# docker pull 192.168.100.10:5000/image/tomcat:1.0 
 <!--Der Docker-Client wird beim Herunterladen von Bildern aus privaten Repositories ohne Authentifizierung direkt abgelehnt-->
Fehlerantwort vom Daemon: Get http://192.168.100.10:5000/v2/image/tomcat/manifests/1.0: keine grundlegenden Authentifizierungsdaten
[root@centos02 ~]# Docker-Login 192.168.100.10:5000 
    <!--Melden Sie sich beim privaten Lager an und bestehen Sie die Identitätsauthentifizierung-->
Benutzername: bob <!--Geben Sie bob ein-->
Passwort: <!--Passwort eingeben-->
Anmeldung erfolgreich <!--Authentifizierung erfolgreich abgeschlossen-->
[root@centos02 ~]# docker pull 192.168.100.10:5000/image/tomcat:1.0 <!--Laden Sie das Image im privaten Warehouse herunter-->
1.0: Ziehen von Image/Tomcat
376057ac6fa1: Ziehen abgeschlossen
5a63a0a859d8: Ziehen abgeschlossen
496548a8c952: Ziehen abgeschlossen
2adae3950d4d: Ziehen abgeschlossen
0a297eafb9ac: Pull abgeschlossen
09a4142c5c9d: Ziehen abgeschlossen
9e78d9befa39: Ziehen abgeschlossen
18f492f90b9c: Ziehen abgeschlossen
7834493ec6cd: Ziehen abgeschlossen
216b2be21722: Ziehen abgeschlossen
Zusammenfassung: sha256:55b41e0290d32d6888aee2e9a15f03cc88d2f49d5ad68892c54b9527d0ed181c
Status: Neueres Image für 192.168.100.10:5000/image/tomcat:1.0 heruntergeladen
192.168.100.10:5000/Bild/Tomcat:1.0
[root@centos02 ~]# Docker-Images <!--Docker-Client-Image anzeigen-->
REPOSITORY TAG BILD ID ERSTELLT GRÖSSE
192.168.100.10:5000/image/tomcat 1.0 1b6b1fe7261e vor 5 Tagen 647 MB
192.168.100.10:5000/image/centos 6.7 b2ab0ed558bb vor 3 Jahren 602 MB

Dies ist das Ende dieses Artikels über die Implementierung der Bereitstellung von Docker Private Warehouse Registry. Weitere relevante Inhalte zu Docker Private Warehouse Registry finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Der Prozess zum Erstellen eines privaten Docker-Registry-Warehouses
  • So implementieren Sie Docker Registry zum Erstellen eines privaten Image Warehouse
  • Docker erstellt ein privates Lager (Registrierung, Hafen)
  • Detaillierte Erläuterung des Aufbaus und der Überprüfung des Docker Private Warehouse Registry
  • So erstellen Sie ein privates Repository mit einem Docker-Registrierungsimage
  • Detaillierte Erläuterung zum Löschen und zur Speicherbereinigung von Docker-Registrierungsabbildern
  • Fallbeispiel für die Bereitstellung eines privaten Image-Warehouse-Dienstes mit Docker-Registrierung

<<:  Zusammenfassung der Methoden zum Abfragen von MySQL-Benutzerberechtigungen

>>:  Beispiel zum Anzeigen und Ändern der MySQL-Transaktionsisolationsebene

Artikel empfehlen

So fügen Sie bei der Webseitenerstellung Webfont-Dateien Vektorsymbole hinzu

Wie wir alle wissen, gibt es in Computern zwei Art...

Tutorial zur Installation und Konfiguration der Version MySQL 5.7.23

Ich habe drei Stunden gebraucht, um MySQL selbst ...

CSS erstellt Tippboxen, Bubble-Boxen und Dreiecke

Manchmal benötigen unsere Seiten Eingabeaufforder...

So ändern Sie das Passwort des Root-Benutzers in MySQL

Methode 1: Verwenden Sie den Befehl SET PASSWORD ...

Zusammenfassung häufig verwendeter Toolfunktionen in Vue-Projekten

Inhaltsverzeichnis Vorwort 1. Benutzerdefinierter...

Was tun, wenn Sie Ihr Passwort in MySQL 5.7.17 vergessen?

1. Skip-Grant-Tables zur Datei my.ini hinzufügen ...

Detaillierte Analyse der Parameterdatei my.cnf von MySQL in Ubuntu

Vorwort Aufgrund meines MySQL-Verständnisses denk...

So konfigurieren Sie einen Pfadalias für das React-Scaffolding

Die React-Version beim Schreiben dieses Artikels ...