Implementierung von Docker zum Aufbau eines privaten Warehouse (Registrierung und Harbor)

Implementierung von Docker zum Aufbau eines privaten Warehouse (Registrierung und Harbor)

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. Im Folgenden finden Sie eine ausführliche Einführung zum Erstellen eines privaten Lagers.

1. Erstellen Sie ein privates Registrierungslager

1) Fallbeschreibung

Zwei Docker-Server: DockerA erstellt ein privates Registry-Warehouse und DockerB wird zum Testen verwendet!

2) Fallbeispiele

(1) Betrieb des DockerA-Servers

[root@dockerA ~]# docker pull registry:2 //Laden Sie das Image von registry:2 herunter [root@dockerA ~]# docker run -itd --name registry --restart=always -p 5000:5000 -v /registry:/var/lib/registry registry:2
//Erstellen Sie einen Registrierungscontainer, um den Registrierungsdienst auszuführen.
//-p: Portzuordnung (vorne ist der Host-Port, hinten der vom Container freigegebene Port);
//-v: Mount-Verzeichnis (das erste ist das Host-Verzeichnis, das zweite ist das Container-Verzeichnis), um das Host-Verzeichnis automatisch zu erstellen;
//--restart=always: Mit dem Start des Docker-Dienstes beginnen!
[root@dockerA ~]# docker ps //Stellen Sie sicher, dass der Container ausgeführt wird. CONTAINER-ID IMAGE-BEFEHL ERSTELLT STATUS PORTS NAMEN
f98bf93f100e Registrierung:2 "/entrypoint.sh /etc…" vor 3 Minuten Vor 3 Minuten 0.0.0.0:5000->5000/tcp Registrierung
[root@dockerA ~]# netstat -anpt | grep 5000 // Stellen Sie sicher, dass Port 5000 abgehört wird tcp6 0 0 :::5000 :::* LISTEN 2370/docker-proxy  
[root@dockerA ~]# Docker-Tag Centos:7 192.168.1.1:5000/Centos:7
//Ändern Sie den Image-Namen, damit er der Spezifikation für den Namen des privaten Warehouse entspricht. Hinweis: Die Namenskonvention für Images des privaten Warehouse lautet: 192.168.20.7:5000/XXX (IP des Host-Rechners: 5000 Port/Image-Name).
[root@dockerA ~]# vim /usr/lib/systemd/system/docker.service 
//Schreibe die Hauptkonfigurationsdatei des Docker-Dienstes 13 ExecStart=/usr/bin/dockerd --insecure-registry 192.168.1.1:5000
//Ändern Sie die ursprüngliche Konfigurationsdatei, um ein unsicheres Register hinzuzufügen (--insecure-registry). Die Adresse ist die IP-Adresse des Hosts und Port 5000 [root@dockerA ~]# systemctl daemon-reload 
[root@dockerA ~]# systemctl restart docker //Starten Sie den Docker-Dienst neu [root@dockerA ~]# docker push 192.168.1.1:5000/centos:7
//Laden Sie das umbenannte Image in das private Warehouse der Registrierung hoch [root@dockerA ~]# curl 192.168.1.1:5000/v2/_catalog // Zeigen Sie das Image im privaten Warehouse an {"repositories":["centos"]}
[root@dockerA ~]# curl 192.168.1.1:5000/v2/centos/tags/list //Detaillierte Informationen zum Image anzeigen {"name":"centos","tags":["7"]}

(2) Betrieb des DockerB-Servers

[root@dockerB ~]# vim /usr/lib/systemd/system/docker.service 
//Ändern Sie die Hauptkonfigurationsdatei von Docker 13 ExecStart=/usr/bin/dockerd --insecure-registry 192.168.1.1:5000
//Fügen Sie Inhalte hinzu, die mit der Registrierung übereinstimmen, und geben Sie die IP-Adresse und den Port des privaten Registrierungslagerservers an [root@dockerB ~]# systemctl daemon-reload 
[root@dockerB ~]# systemctl restart docker //Starten Sie den Docker-Dienst neu [root@dockerB ~]# curl 192.168.1.1:5000/v2/_catalog //Zeigen Sie das Image im privaten Warehouse an {"repositories":["centos"]}
[root@dockerB ~]# curl 192.168.1.1:5000/v2/centos/tags/list // Sehen Sie sich das Bild im privaten Lager an {"name":"centos","tags":["7"]}
[root@dockerB ~]# docker pull 192.168.1.1:5000/centos:7
//Laden Sie das Image im privaten Repository herunter [root@dockerB ~]# Docker-Images //Bestätigen Sie, dass das Image in das lokale REPOSITORY heruntergeladen wurde. TAG IMAGE ID CREATED SIZE
192.168.1.1:5000/centos 7 5e35e350aded vor 5 Wochen 203 MB

An diesem Punkt wurde das private Registrierungslager erstellt!

2. 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!

2) Fallbeispiele

(1) Laden Sie das Docker-Compose-Tool herunter

Gehen Sie zunächst zur offiziellen GitHub-Website, wie in der Abbildung gezeigt:





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

(2) Konfigurieren von Harbor

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

Die gleiche Operation wird auch auf dem DockerA-Server ausgeführt

[root@dockerA ~]# wget https://storage.googleapis.com/harbor-releases/release-1.9.0/harbor-offline-installer-v1.9.1.tgz
//Laden Sie das Harbor-Softwarepaket herunter [root@dockerA ~]# tar zxf harbor-offline-installer-v1.9.1.tgz -C /usr/local
[root@dockerA ~]# cd /usr/local/hafen/
[root@dockerA Hafen]# vim harbor.yml 
//Schreiben Sie die Konfigurationsdatei. Andere Versionen enden standardmäßig mit cfg, aber diese Version endet mit yml. Der Dateiinhalt ist derselbe. Hostname: 192.168.1.1 //Ändern Sie es 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 harbor]# vim /usr/lib/systemd/system/docker.service 
//Schreibe die Docker-Hauptkonfigurationsdatei 13 ExecStart=/usr/bin/dockerd --insecure-registry 192.168.1.1
// Ä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 TCP lauscht 0 0 172.18.0.1:33780 172.18.0.5:10514 ESTABLISHED 70076/docker-proxy 
tcp6 0 0 :::80 :::* LISTEN 72870/Docker-Proxy

Der Client greift auf die Webseite zu:




(3) Bild hochladen

Nachdem das Lager erstellt ist, laden Sie das Image auf den DockerA-Server (Harbour) hoch!

[root@dockerA ~]# docker login -u admin -p Harbor12345 192.168.1.1
//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

Anmeldung erfolgreich //Anmeldung erfolgreich[root@dockerA ~]# docker tag centos:7 192.168.1.1/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.1.1/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:

(4) 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.1.1
//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.1.1
//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.1.1/test/centos:7
//Laden Sie das Image zum Testen herunter [root@dockerB ~]# Docker-Images //Stellen Sie sicher, dass das Image heruntergeladen wurde. REPOSITORY TAG IMAGE ID CREATED SIZE
192.168.1.1/test/centos 7 5e35e350aded vor 5 Wochen 203 MB

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

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
  • Schritte für Docker zum Erstellen eines privaten Lagerhafens
  • Bauprozess eines privaten Docker-Lagerhafens
  • Harbor visualisiert eine private Image-Warehouse-Umgebung und ein Beispiel für die Bereitstellung von Diensten

<<:  Tutorial zu den Grundlagen von JavaScript und JQuery Framework

>>:  Leitfaden zur effizienten Nutzung von MySQL-Indizes

Artikel empfehlen

So führen Sie Hadoop aus und erstellen Images in Docker

Wir erfinden das Rad neu: Hier verwenden wir Neuv...

Die Frontend-Entwicklung muss jeden Tag lernen, HTML-Tags zu verstehen (1)

2.1 Semantisierung sorgt dafür, dass Ihre Webseit...

Eine kurze Erläuterung des CSS-Überlaufmechanismus

Warum müssen Sie sich eingehend mit dem CSS-Überl...

Kann CSS auf diese Weise verwendet werden? Die Kunst wunderlicher Farbverläufe

Im vorherigen Artikel – Der Charme einer Zeile CS...

Ausführliches Tutorial zur Installation von MySql 5.6.35 winx64

Hinweis: Beim Projektstart ist kein Fehler aufgru...

Vue-Praxis zur Vermeidung mehrfacher Klicks

Im Allgemeinen werden Klickereignisse in verschie...

Linux-Systemaufrufe für Betriebsdateien

Inhaltsverzeichnis 1. Öffnen Sie die Datei Parame...

Eine kurze Diskussion darüber, ob CSS-Animationen durch JS blockiert werden

Der Animationsteil von CSS wird von JS blockiert,...

Centos7.3 startet oder führt beim Booten automatisch angegebene Befehle aus

In CentOS7 wurden die Berechtigungen der Datei /e...

Tutorial zur Installation der entpackten Version von mysql5.7 auf CentOS 7

1. Entpacken Sie das komprimierte MySQL-Paket in ...