Schritte für Docker zum Erstellen eines privaten Lagerhafens

Schritte für Docker zum Erstellen eines privaten Lagerhafens

Hafen

Harbor ist eine Open-Source-Lösung zum Erstellen privater Docker-Image-Repositorys auf Unternehmensebene. Es handelt sich um eine erweiterte Kapselung von Docker Registry. Neben einer benutzerfreundlichen Web-Benutzeroberfläche, Rollen- und Benutzerberechtigungsverwaltung, Benutzerbetriebsüberwachung und anderen Funktionen integriert es auch das K8s-Plug-In-Repository (Add-Ons), d. h. Helm lädt K8s-Plug-Ins über Charts herunter, verwaltet und installiert sie, und Chartmuseum kann ein Warehouse zum Speichern von Chartdaten bereitstellen [Hinweis: Helm entspricht Yum in K8s]. Darüber hinaus sind auch zwei Open-Source-Sicherheitskomponenten integriert: Notary und Clair. Notary ähnelt einem privaten CA-Center, während Clair ein Tool zum Scannen der Containersicherheit ist. Es erhält die neuesten Informationen zu Schwachstellen über die von den großen Herstellern bereitgestellte CVE-Schwachstellenbibliothek und scannt die von Benutzern hochgeladenen Container auf bekannte Schwachstelleninformationen. Diese beiden Sicherheitsfunktionen sind für private Repositories auf Unternehmensebene sehr sinnvoll.

1. Bauen Sie ein privates Lagerhaus im Hafen

Im Vergleich zum Registry Private Warehouse ist das Harbor Private Warehouse viel leistungsfähiger und unterstützt die grafische Webverwaltung. Daher erfreut es sich bei Unternehmen großer Beliebtheit!

1) Fallbeschreibung

Zwei Docker-Server, DockerA erstellt ein privates Harbor-Lager und DockerB wird zum Testen verwendet!






1. Betrieb des DockerA-Servers

[root@dockerA ~]# yum -y installiere yum-utils device-mapper-persistent-data lvm2
//Laden Sie die vom Docker-Compose-Tool benötigten Abhängigkeiten herunter (Sie können es installieren, wenn Sie die Docker-Umgebung bereitstellen)
[root@dockerA ~]# curl -L https://github.com/docker/compose/releases/download/1.25.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
//Laden Sie das Docker-Compose-Tool herunter [root@dockerA ~]# chmod +x /usr/local/bin/docker-compose
[root@dockerA ~]# docker-compose -v      
Docker-Compose-Version 1.25.0, Build 0a186604
//Überprüfen Sie die Versionsinformationen des Docker-Compose-Tools, um sicherzustellen, dass es erfolgreich installiert wurde

Konfigurieren Sie Harbor

Sie können auch auf der offiziellen Website von GitHub suchen und die entsprechende Version finden. Ich werde hier keine weiteren Screenshots machen!
URL: https://github.com/goharbor/harbor/releases
Wie in der Abbildung gezeigt:

[root@dockerA ~]# wget https://storage.googleapis.com/harbor-releases/release-1.7.0/harbor-offline-installer-v1.7.4.tgz
//Laden Sie das Harbor-Softwarepaket herunter [root@dockerA ~]# tar zxf harbor-offline-installer-v1.7.0.tgz -C /usr/local
[root@dockerA ~]# cd /usr/local/hafen/
[root@dockerA Hafen]# vim harbor.cfg 
//Schreibe die Konfigurationsdatei. Andere Versionen enden standardmäßig mit cfg, aber diese Version endet mit yml. Der Dateiinhalt ist derselbe hostname=192.168.45.129 //Ändere ihn in die lokale IP-Adresse harbor_admin_password: Harbor12345    
//Diese Zeile existiert bereits, Sie müssen sie nicht selbst ausfüllen. Merken Sie sich einfach den Benutzernamen und das Passwort. Sie können sie bei Bedarf ändern. [root@dockerA harbor]# ./install.sh //Führen Sie das Installationsskript aus 

[root@dockerA-Hafen]# vim /usr/lib/systemd/system/docker.service 
//Schreibe die Docker-Hauptkonfigurationsdatei ExecStart=/usr/bin/dockerd --insecure-registry 192.168.45.129
 // Ähnlich wie bei der Registrierung wird die Portnummer nicht in die Harbor-Konfigurationsdatei eingetragen, daher können Sie sie hier hinzufügen, da sonst möglicherweise ein Fehler auftritt [root@dockerA harbor]# systemctl daemon-reload 
[root@dockerA harbor]# systemctl restart docker //Starten Sie den Docker-Dienst neu [root@dockerA harbor]# pwd
/usr/local/harbor //Notieren Sie sich das Verzeichnis, es muss in diesem Verzeichnis sein [root@dockerA harbor]# docker-compose start
//Verwenden Sie das Docker-Compose-Tool, um alle Container zu starten (denn wenn Sie Docker neu starten, werden alle Container geschlossen)
[root@dockerA harbor]# netstat -anpt | grep 80 //Bestätigen Sie, dass Port 80 auf tcp6 lauscht 0 0 :::80 :::* LISTEN 22871/docker-proxy 

Der Client greift auf die Webseite zu:





Bild hochladen

Nachdem das Lager erstellt ist, laden Sie das Image auf den DockerA-Server (Harbour) hoch!
[root@dockerA-Hafen]# docker login -u admin -p Harbor12345 192.168.45.129 
//Geben Sie Benutzernamen, Passwort und Harbor-Serveradresse zur Anmeldung 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
[root@dockerA ~]# Docker-Tag Centos:7 192.168.45.129/test/centos:7
//Sie müssen den Image-Namen ändern, Test ist der Name des Warehouse, das Sie gerade erstellt haben [root@dockerA ~]# docker push 192.168.45.129/test/centos:7
//Laden Sie das Bild in das Test-Repository des Harbor-Servers hoch

Nachdem der Upload abgeschlossen ist, wie in der Abbildung dargestellt:

2. Testen Sie das heruntergeladene Image auf dem DockerB-Server

[root@dockerB ~]# vim /usr/lib/systemd/system/docker.service 
//Schreibe die Hauptkonfigurationsdatei von Docker 13 ExecStart=/usr/bin/dockerd --insecure-registry 192.168.45.129
//Geben Sie die IP-Adresse des Harbor-Servers an [root@dockerB ~]# systemctl daemon-reload 
[root@dockerB ~]# systemctl restart docker //Starten Sie den Docker-Dienst neu [root@dockerB ~]# docker login -u admin -p Harbor12345 192.168.45.129
//Beim Harbor-Server 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 //Anmeldung erfolgreich[root@dockerB ~]# docker pull 192.168.45.129/test/centos:7
//Laden Sie das Image zum Testen herunter [root@dockerB ~]# Docker-Images
REPOSITORY TAG BILD ID ERSTELLT GRÖSSE
192.168.45.129/test/centos 7 b5b4d78bc90c vor 2 Monaten 203 MB

Dies ist das Ende dieses Artikels über die Schritte zum Erstellen eines privaten Warehouse Harbor mit Docker. Weitere Informationen zum Erstellen eines privaten Warehouse Harbor mit Docker 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:
  • Tutorial zum Einrichten und Verwenden von Harbor, einem Spiegel-Repository
  • Detaillierte Erklärung zum Erstellen eines privaten Docker-Image-Repositorys basierend auf Harbor
  • Einführung und Bereitstellungsmethode des Docker Private Warehouse Harbor
  • Bauprozess eines privaten Docker-Lagerhafens
  • Implementierung von Docker zum Aufbau eines privaten Warehouse (Registrierung und Harbor)
  • Harbor visualisiert eine private Image-Warehouse-Umgebung und ein Beispiel für die Bereitstellung von Diensten

<<:  Lösungen für MySQL OOM (Speicherüberlauf)

>>:  Detaillierte Erläuterung der benutzerdefinierten Anweisungen für die Vue.js-Direktive

Artikel empfehlen

Persönliche Meinung: Sprechen Sie über Design

<br />Wählen Sie das praktischste Thema aus....

Detaillierte Erklärung zur sauberen Deinstallation von Docker

Zunächst die Informationen zur Serverumgebung: Gr...

Detaillierte Erklärung zur Verwendung von Standard in MySQL

NULL- und NOT NULL-Modifikatoren, DEFAULT-Modifik...

jQuery implementiert das Bouncing-Ball-Spiel

In diesem Artikel wird der spezifische Code von j...

Inaktive Benutzer nach einem Login-Timeout in Linux automatisch abmelden

Methode 1: Ändern Sie die Datei .bashrc oder .bas...

Warum wird deine Like-Aussage nicht indexiert?

Vorwort Dieser Artikel zielt darauf ab, die langw...

Verwendung von Docker UI, einem Docker-Visualisierungsverwaltungstool

1. Einführung in DockerUI DockerUI basiert auf de...

Ursachen und Lösungen für den Nginx 502 Bad Gateway-Fehler

Der Nginx 502 Bad Gateway-Fehler ist mir schon me...

Müssen Designer das Programmieren lernen?

Oftmals wird nach der Fertigstellung eines Webdes...

Detailliertes Beispiel für MySQL ähnlich dem Schreiben von Oracle Rownum

Rownum ist eine einzigartige Schreibmethode in Or...

So verwenden Sie Javascript zum Generieren glatter Kurven

Inhaltsverzeichnis Vorwort Einführung in Bézierku...

MySQL 8.0.17 Installations- und einfaches Konfigurationstutorial unter macOS

Wenn Sie nicht verstehen, was ich geschrieben hab...

Implementierungsbeispiel für die Message Board-Funktion von Node.js+Express

Inhaltsverzeichnis Nachrichtenbrett Erforderliche...

Elementui exportiert Daten in XLSX- und Excel-Tabellen

Kürzlich habe ich vom Vue-Projekt erfahren und bi...