Beispiel zum Erstellen eines öffentlichen Harbor-Repository mit Docker

Beispiel zum Erstellen eines öffentlichen Harbor-Repository mit Docker

Im vorherigen Blogbeitrag ging es um das private Registry-Warehouse. Heute konfigurieren wir das Harbor-Warehouse. Harbor kann als öffentliches oder privates Warehouse verwendet werden. Heute konfigurieren wir, wie Harbor öffentliche und private Warehouses implementiert.

Weitere Informationen zu öffentlichen Registry-Repositories finden Sie im Blogbeitrag: Bereitstellen privater Docker-Repositories Registry

Der Unterschied zwischen Registry und Harbor

  • Registry: Dies ist ein privates Bild-Repository mit schlechter Grafikunterstützung und wird von kleinen Unternehmen verwendet.
  • Harbor: unterstützt visuelles Management, private und öffentliche Repositories sowie Bildverwaltung und -kontrolle;

Vorteile von Docker Harbor

  • Die Open-Source-Bildverwaltungslösung von VMWare;
  • Unterstützt grafische Verwaltung;
  • Einfacher Zugriff und Konfiguration;
  • Erleichtert die Bildzugriffskontrolle;
  • Unterstützung der Spiegelungsverantwortungsstrategie;
  • Überprüfen und zählen Sie die Nutzung von Benutzerzugriffsbildern.

Von Docker Harbor abhängige Programme

  • Python;
  • Installieren Sie Docker;
  • Docker komponieren;

1. Baue ein Hafenlager

Fallbeschreibung:

Zwei CentOS7.4, ein Server und ein Client (zum Testen);

Beide Server müssen den Docker-Dienst installieren. Meine Docker-Version ist 19.03.9.

Weitere Informationen zur Installation von Docker-Containern finden Sie unter: Installieren Sie Docker.v19.03.9

1. Docker Compose konfigurieren

Besuchen Sie die offizielle Website von Daoyun, suchen Sie nach der Installation von Docker Compose und kopieren Sie den Befehl auf den Docker-Server: Daoyun

[root@centos01 ~]# curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose 
<!--Docker Compose herunterladen-->
[root@centos01 ~]# chmod +x /usr/local/bin/docker-compose <!--Docker Compose fügt Ausführungsberechtigungen hinzu-->
[root@centos01 ~]# docker-compose -v <!--Docker Compose-Version anzeigen-->
Docker-Compose-Version 1.25.5, Build 8a1c60f6

2. Konfigurieren Sie das öffentliche Docker Harbor-Repository

1) Öffnen Sie die offizielle Github-Website

Öffnen Sie die offizielle Website von Github und suchen Sie nach „Harbor“. Klicken Sie dann auf „goharbor/harbor“ und dann auf „Releases“. Laden Sie die entsprechende Version entsprechend Ihren Anforderungen herunter und laden Sie sie auf den Server hoch (die URL lautet: https://github.com/goharbor/harbor/releases. Sie können das Installationspaket auch online herunterladen. Ich habe es noch nicht ausprobiert, also können Sie es selbst ausprobieren), und zwar wie folgt:

2) Konfigurieren Sie das Harbor-Lager

harbor-online-installer-v1.9.1.tgz <!--Komprimiertes Harbor-Paket hochladen-->
[root@centos01 ~]# tar zxvf harbor-online-installer-v1.9.1.tgz -C /usr/local/
  <!--Entpacken Sie Harbor nach /usr/local/directory-->
[root@centos01 ~]# cd /usr/local/harbor/ <!--Geben Sie das Harbor-Verzeichnis ein-->
[root@centos01 harbor]# cp harbor.yml harbor.yml.bak <!--Backup der Harbor-Hauptkonfigurationsdatei-->
[root@centos01 harbor]# vim harbor.yml <!--Hauptkonfigurationsdatei von Harbor ändern-->
 5 Hostname: 192.168.100.10 <!--Ändern Sie die IP-Adresse des Docker-Servers-->
<!--hostname kann ein Domänenname sein, aber der Domänenname erfordert auch eine Änderung der Hosts-Datei oder die Installation von DNS. Ich werde hier die IP-Adresse verwenden-->
 8 http: <!--HTTP-Protokoll verwenden-->
10 Port: 80 <!--80 Portnummer-->
27 harbor_admin_password: Harbor12345 <!--Standardpasswort, kann angepasst werden-->
[root@centos01 harbor]# ./install.sh <!--Install Harbor-->
[Schritt 0]: Installationsumgebung prüfen …

Hinweis: Docker-Version: 19.03.9

Hinweis: Docker-Compose-Version: 1.25.5
……………… <!--Hier wurde ein Teil des Inhalts ausgelassen-->
Hafenlog erstellen ... fertig
Registryctl erstellen ... fertig
Redis erstellen ... fertig
Hafenportal erstellen ... fertig
Registrierung erstellen ... fertig
Harbor-DB wird erstellt ... fertig
Erstellen von Harbor-Core ... fertig
Nginx erstellen ... fertig
Erstellen von harbour-jobservice ... fertig

✔ ----Harbor wurde erfolgreich installiert und gestartet.----

Jetzt sollten Sie das Admin-Portal unter http://www.benet.com besuchen können.
Weitere Einzelheiten finden Sie unter https://github.com/goharbor/harbor.
   <!--Der obige Code wird nach Abschluss der Installation angezeigt und zeigt den Erfolg an-->
[root@centos01 ~]# vim /usr/lib/systemd/system/docker.service <!--Diese Konfigurationsdatei bearbeiten-->
14 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --insecure-registry 192.168.100.10:80
 <!--Suchen Sie diese Zeile und fügen Sie "--insecure-registr" hinzu, um die IP-Adresse und den Abhörport von Harbor anzugeben-->
[root@centos01 harbor]# systemctl daemon-reload <!--Docker als Daemon ausführen-->
[root@centos01 harbor]# systemctl restart docker <!--Docker-Dienst neu starten-->
[root@centos01 harbor]# docker-compose stop <!--Alle Container stoppen-->
[root@centos01 harbor]# docker-compose start <!--Alle Container starten-->
[root@centos01 harbor]# netstat -anptu |grep 80 <!--Auf Port 80 lauschen-->
tcp6 0 0 :::80 :::* LISTEN 23473/Docker-Proxy

3) Nachdem die Installation abgeschlossen ist, verwenden Sie den Browser, um auf das Harbor-Repository zuzugreifen

4) Erstellen Sie ein öffentliches Repository

5) Stellen Sie sicher, dass das öffentliche Image-Repository erfolgreich erstellt wurde

6) Melden Sie sich beim Harbor-Repository auf dem Docker-Server an

[root@centos01 ~]# docker login -uadmin -pHarbor12345 192.168.100.10:80 <!--Bei Harbor Warehouse anmelden-->
WARNUNG! Die Verwendung von --password über die CLI ist unsicher. Verwenden Sie --password-stdin.
WARNUNG! Ihr Passwort wird unverschlüsselt in /root/.docker/config.json gespeichert.
Konfigurieren Sie einen Credential Helper, um diese Warnung zu entfernen. Siehe
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Anmeldung erfolgreich <!--Diese Eingabeaufforderung zeigt an, dass die Anmeldung erfolgreich war-->
[root@centos01 ~]# Docker-Tag Tomcat:latest 192.168.100.10:80/image/nginx:nginx 
   <!--Bild-Tag ändern-->
[root@centos01 ~]# docker push 192.168.100.10:80/image/nginx:nginx
  <!--Laden Sie das Bild in das Harbor-Repository hoch-->
[root@centos01 ~]# docker logout 192.168.100.10:80 <!--Docker-Server verlässt Harbor-->
Anmeldeinformationen für 192.168.100.10:80 werden entfernt

7) Harbor prüft, ob das Bild erfolgreich hochgeladen wurde

3. Konfigurieren Sie den Docker-Client

<!--Docker-Client installiert Docker-Dienst-->

1) Ändern Sie die Konfigurationsdatei, um den Docker Harbor-Server zu laden [root@centos02 ~]# vim /usr/lib/systemd/system/docker.service <!--Edit this configuration file-->
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --insecure-registry 192.168.100.10:80 
 <!--Suchen Sie diese Zeile und fügen Sie "--insecure-registr" hinzu, um die IP-Adresse und den Abhörport von Harbor anzugeben-->
[root@centos02 ~]# systemctl daemon-reload <!--Daemonprozess führt Docker aus-->
[root@centos02 ~]# systemctl restart docker <!--Docker-Dienst neu starten-->
[root@centos02 ~]# docker login -uadmin -pHarbor12345 192.168.100.10:80 
   <!--Docker-Client meldet sich bei Harbor an-->
WARNUNG! Die Verwendung von --password über die CLI ist unsicher. Verwenden Sie --password-stdin.
WARNUNG! Ihr Passwort wird unverschlüsselt in /root/.docker/config.json gespeichert.
Konfigurieren Sie einen Credential Helper, um diese Warnung zu entfernen. Siehe
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Anmeldung erfolgreich <!--Anmeldung erfolgreich-->
[root@centos02 ~]# docker pull 192.168.100.10:80/image/nginx:nginx 
 <!--Docker-Client lädt das Image im öffentlichen Harbor-Repository herunter-->
[root@centos02 ~]# Docker-Images <!--Docker-Client-Image anzeigen-->
REPOSITORY TAG BILD ID ERSTELLT GRÖSSE
192.168.100.10:80/image/nginx nginx 1b6b1fe7261e vor 7 Tagen 647 MB

4. Erstellen Sie ein privates Harbor-Lager

1) Erstellen Sie ein privates Lager

2) Einen Benutzer anlegen

3) Fügen Sie den neu erstellten privaten Benutzer zum privaten Repository hinzu

4) Laden Sie das Bild in das private Lager von Harbor hoch

[root@centos01 ~]# Docker-Tag Tomcat:latest 192.168.100.10:80/privat/Tomcat:Tomcat 
  <!--Docker-Server ändert das Image-Tag-->
[root@centos01 ~]# docker login -uprivate -pHarbor12345 192.168.100.10:80 
   <!--Melden Sie sich beim privaten Harbor-Lager an-->
WARNUNG! Die Verwendung von --password über die CLI ist unsicher. Verwenden Sie --password-stdin.
WARNUNG! Ihr Passwort wird unverschlüsselt in /root/.docker/config.json gespeichert.
Konfigurieren Sie einen Credential Helper, um diese Warnung zu entfernen. Siehe
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Anmeldung erfolgreich <!--Anmeldung erfolgreich-->
[root@centos01 ~]# docker push 192.168.100.10:80/privat/tomcat:tomcat 
  <!--Laden Sie das Bild in ein privates Repository hoch-->

5) Harbor prüft, ob das Bild erfolgreich hochgeladen wurde

6) Der Docker-Client lädt das Image im privaten Repository herunter

[root@centos02 ~]# docker login -uprivate -pHarbor12345 192.168.100.10:80 
  <!--Docker-Client meldet sich beim privaten Harbor-Warehouse an-->
WARNUNG! Die Verwendung von --password über die CLI ist unsicher. Verwenden Sie --password-stdin.
WARNUNG! Ihr Passwort wird unverschlüsselt in /root/.docker/config.json gespeichert.
Konfigurieren Sie einen Credential Helper, um diese Warnung zu entfernen. Siehe
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Anmeldung erfolgreich <!--Anmeldung erfolgreich-->
[root@centos02 ~]# docker pull 192.168.100.10:80/privat/tomcat:tomcat 
   <!--Docker-Client lädt das Image im privaten Harbor-Warehouse herunter-->
[root@centos02 ~]# Docker-Images <!--Docker-Client prüft, ob das Image erfolgreich heruntergeladen wurde-->
REPOSITORY TAG BILD ID ERSTELLT GRÖSSE
192.168.100.10:80/image/nginx nginx 1b6b1fe7261e vor 7 Tagen 647 MB
192.168.100.10:80/privat/Tomcat Tomcat 1b6b1fe7261e vor 7 Tagen 647 MB

7) Harbor unterstützt die Protokollstatistikfunktion

Dies ist das Ende dieses Artikels über die Verwendung von Docker zum Erstellen eines öffentlichen Harbor-Repositorys. Weitere Informationen zur Verwendung von Docker zum Erstellen eines öffentlichen Harbor-Repositorys finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Detaillierte Erklärung zum Erstellen eines privaten Docker-Image-Repositorys basierend auf Harbor
  • Docker erstellt ein privates Lager (Registrierung, Hafen)
  • Architektur und Komponentenbeschreibung der privaten Docker-Bibliothek Harbor
  • Detaillierte Schritte zur Installation von Harbor, einem privaten Docker-Repository
  • Implementierung von Docker zum Aufbau eines privaten Warehouse (Registrierung und Harbor)
  • Bauprozess eines privaten Docker-Lagerhafens
  • Schritte für Docker zum Erstellen eines privaten Lagerhafens
  • Docker Gitlab+Jenkins+Harbor erstellt einen persistenten Plattformbetrieb
  • Detailliertes Tutorial zum Erstellen einer Continuous-Integration-Delivery-Umgebung basierend auf Docker+K8S+GitLab/SVN+Jenkins+Harbor
  • So erstellen Sie mit Harbor ein privates Docker-Repository
  • Docker5 - Vollfunktionaler Hafenlager-Bauprozess
  • Detailliertes Tutorial zur Installation von Harbor Private Warehouse mit Docker Compose
  • Jenkins erstellt Docker-Images und überträgt sie in das Harbor-Warehouse.
  • Methode zum Erstellen eines privaten Docker-Warehouses basierend auf Harbor
  • Einführung und Bereitstellungsmethode des Docker Private Warehouse Harbor

<<:  Die Reihenfolge der Ereignisausführung in der Knotenereignisschleife

>>:  Der einfachste Weg, das MySQL-Root-Passwort zurückzusetzen

Artikel empfehlen

Die Bedeutung des Statuscodes im HTTP-Protokoll

Ein Statuscode, der eine vorläufige Antwort anzei...

Tutorial zum Konfigurieren und Verwenden des i3-Fenstermanagers unter Linux

In diesem Artikel zeige ich Ihnen, wie Sie i3 auf...

So finden und löschen Sie doppelte Zeilen in MySQL

Inhaltsverzeichnis 1. So finden Sie doppelte Zeil...

Mysql-Datumsformatierung und komplexe Datumsbereichsabfrage

Inhaltsverzeichnis Vorwort Anwendungsszenarios fü...

Detaillierte Erläuterung der Javascript-Wissenspunkte

Inhaltsverzeichnis 1. Grundlegende Einführung in ...

Was tun, wenn Sie das ursprüngliche Passwort für MySQL auf dem MAC vergessen?

Die Lösung zum Vergessen des ursprünglichen MySQL...

Einstellen der Engine MyISAM/InnoDB beim Erstellen einer Datentabelle in MySQL

Als ich MySQL konfiguriert habe, habe ich die Sta...

So verwenden Sie vue.js zum Implementieren der Drag & Drop-Funktion

Vorwort Durch das Hinzufügen einer Drag & Dro...

Verschiedene korrekte Haltungen zur Verwendung von Umgebungsvariablen in Webpack

Inhaltsverzeichnis Schreiben Sie vor Geschäftscod...

Beispiele für die MySQL-Verschlüsselung und -Entschlüsselung

Beispiele für die MySQL-Verschlüsselung und -Ents...

CSS-Code-Abkürzung div+css-Layout-Code-Abkürzungsspezifikation

Durch die Verwendung von Abkürzungen können Sie di...

Implementierung eines Docker-Cross-Host-Netzwerks (Overlay)

1. Docker-Cross-Host-Kommunikation Zu den hostübe...