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

Diskussion zu Bildpfadproblemen in CSS (dasselbe Paket/anderes Paket)

In CSS-Dateien müssen Sie manchmal einen Hintergru...

Lösen Sie das Problem, dass Docker Sudo-Operationen verwenden muss

Die Schritte sind wie folgt 1. Erstellen Sie eine...

Natives Javascript+CSS, um den Karusselleffekt zu erzielen

Dieser Artikel verwendet Javascript + CSS, um den...

Die 9 besten ausländischen Websites mit kostenlosem Bildmaterial

Es ist schwierig, Websites mit gutem Bildmaterial...

Detaillierte Erklärung der nmcli-Verwendung in CentOS8

Allgemeine nmcli-Befehle basierend auf RHEL8/Cent...

Beispiel zum Festlegen der pseudostatischen WordPress-Eigenschaft in Nginx

Zitat aus Baidus Erklärung zu Pseudostatik: Pseud...

js-Methode zum Löschen eines Felds in einem Objekt

Dieser Artikel stellt hauptsächlich die Implement...

Einfaches Tutorial zu den Firewall-Einstellungen unter Ubuntu 20.04 (Anfänger)

Vorwort In der heutigen, immer bequemeren Interne...

Detaillierte Erklärung zum Einfügen gängiger Nginx-Befehle in Shell-Skripte

1. Erstellen Sie einen Ordner zum Speichern von N...

Detaillierte Erläuterung der Vue-Lebenszyklusfunktionen

Inhaltsverzeichnis Lebenszyklusfunktionen Allgeme...