Erstellen Sie ein privates Docker-Warehouse (selbstsignierte Methode)

Erstellen Sie ein privates Docker-Warehouse (selbstsignierte Methode)

Um die von uns erstellten Images zentral zu verwalten und die Bereitstellung von Diensten zu erleichtern, erstellen wir ein privates Docker-Repository. Nachdem ich die offizielle Dokumentation gelesen hatte, stellte ich fest, dass Docker eine CA-Zertifizierung benötigt, um die sichere Verwendung von TLS zu gewährleisten. Die lange Zertifizierungszeit kostet Geld und die kostenlose Ablaufzeit ist zu kurz. Es ist immer noch einfacher, selbst signiert zu verwenden.

Vorbereiten der Umgebung

Umgebung: Zwei virtuelle Centos 7-Maschinen

Server-IP: 10.57.220.244, wird als Docker-Repository verwendet

》Client-IP: 10.57.220.220, wird als Client zum Hochladen oder Abrufen von Bildern verwendet

》Domänenname: lpxxn.com

Auf beiden Maschinen wurde Docker Version 17.03.0-ce installiert

Wenn Sie wie ich keinen echten Domänennamen verwenden, müssen Sie nur die Hosts-Datei auf dem Client-Computer ändern.

Generieren eines selbstsignierten Zertifikats

Generieren Sie ein selbstsigniertes Zertifikat auf dem Serverhost und erstellen Sie einen Ordner zum Speichern des Zertifikats

mkdir -p Zertifikate 

Zertifikat generieren

openssl req -newkey rsa:4096 -nodes -sha256 -keyout certs/lpxxn.com.key -x509 -days 365 -out certs/lpxxn.com.crt

Bitte beachten Sie, dass der eingegebene allgemeine Name mit Ihrem Domänennamen identisch sein muss.

ll certs Ordner, können Sie die beiden generierten Dateien sehen

Führen Sie das Repository-Image aus. Wenn lokal kein entsprechendes Image vorhanden ist, wird es vom Docker-Server heruntergeladen und anschließend gestartet. Mit dem Befehl docker ps können Sie prüfen, ob bereits ein Fenster ausgeführt wird.

Kopieren Sie den Code wie folgt:
docker run -d -p 5000:5000 --restart=immer --name registry_https -v `pwd`/certs:/home/certs -e REGISTRY_HTTP_TLS_CERTIFICATE=/home/certs/lpxxn.com.crt -e REGISTRY_HTTP_TLS_KEY=/home/certs/lpxxn.com.key registry:2

Sie können auch ein lokales Verzeichnis angeben, um das hochgeladene Docker-Image zu speichern

Kopieren Sie den Code wie folgt:
docker run -d -p 5000:5000 -v `pwd`/dockerregister:/var/lib/registry --restart=always --name registry_https -v `pwd`/certs:/home/certs -e REGISTRY_HTTP_TLS_CERTIFICATE=/home/certs/lpxxn.com.crt -e REGISTRY_HTTP_TLS_KEY=/home/certs/lpxxn.com.key registry:2

An diesem Punkt wird der Server gestartet. Der letzte Schritt besteht darin, die generierte lpxxn.com.crt auf den Client zu kopieren. Sie können sie auf Ihre eigene Weise kopieren. Ich verwende scp, um sie zuerst in das Verzeichnis /home/test und dann in das Verzeichnis /etc/pki/ca-trust/source/anchors zu kopieren.

scp -r lpxxn.com.crt [email protected]:/home/test

Konfigurieren des Clients

Kopieren Sie die auf dem Server generierte Datei lpxxn.com.crt in das Verzeichnis /etc/pki/ca-trust/source/anchors auf dem Client-Server und checken Sie sie aus.

Erneuern Sie die Zertifikate und starten Sie Docker neu.

Update-CA-Trust
Dienst Docker stoppen und Dienst Docker starten 

ok. Verwenden Sie curl, um das Lager zu überprüfen

locken https://lpxxn.com:5000/v2/_catalog 

Kann normal zugreifen. Versuchen Sie das Hoch- und Herunterladen mit dem Docker-Befehl

Verwenden Sie das Docker-Tag, um das lokale Image centos:6 als lpxxn.com:5000/centos6:1.0 zu markieren.

Zum Lager schieben

Ausführen des Push-Befehls

docker push lpxxn.com:5000/centos6:1.0 

Lagerinformationen anzeigen

Verwenden Sie curl, um die Bilder und Versionen im Repository anzuzeigen

locken https://lpxxn.com:5000/v2/_catalog
curl https://lpxxn.com:5000/v2/centos6/tags/list 

Ziehen Sie das Image aus dem Repository

Löschen Sie zuerst das lokale Image

docker rmi lpxxn.com:5000/centos6:1.0
Docker RMI Centos:6

Ziehen und rennen

docker pull lpxxn.com:5000/centos6:1.0 

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:
  • Detaillierte Erläuterung des Aufbaus und der Verwendung des Docker Private Warehouse
  • Schritte zum Erstellen eines privaten Docker-Repository von Grund auf
  • Docker erstellt ein privates Lager (Registrierung, Hafen)
  • Detaillierte Erläuterung der Ubuntu Docker Registry zum Erstellen eines privaten Lagers
  • Detaillierte Erläuterung des Aufbaus und der Überprüfung des Docker Private Warehouse Registry
  • Detaillierte Erklärung zum einfachsten Aufbau eines privaten Docker-Warehouses
  • Detaillierte Schritte für Docker zum Erstellen eines lokalen privaten Lagers
  • Detaillierte Schritte zum Erstellen eines privaten Docker Registry-Warehouses

<<:  Diagramm der Konfigurationsmethode für die installationsfreie Version von MySQL5.6 für Windows Server 2008 64-Bit

>>:  JavaScript implementiert die Anzeige einer Dropdown-Box, wenn die Maus darüber bewegt wird

Artikel empfehlen

Analysieren Sie mehrere gängige Lösungen für MySQL-Ausnahmen

Inhaltsverzeichnis Vorwort 1. Der vom Code konfig...

Beispielcode für die Konvertierung von MySQL-Zeilen und -Spalten

1. Nachfrage Wir haben drei Tabellen. Wir müssen ...

js, um einen gleitenden Karusselleffekt zu erzielen

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

Zusammenfassung der Tipps zur Verwendung von coalesce() in MySQL

Vorwort Kürzlich habe ich zufällig MySQLs Coalesc...

Grundlegendes Einführungstutorial zu MySQL-Partitionstabellen

Vorwort In einem aktuellen Projekt mussten wir ei...

Vue implementiert die Shake-Funktion (kompatibel mit ios13.3 und höher)

Vor Kurzem habe ich mit shake.js eine ähnliche Fu...

Lösung für das Ausgehen der Auto-Increment-ID (Primärschlüssel) von MySQL

In MySQL werden viele Typen von Auto-Increment-ID...

Ein Artikel zum Lösen des Echarts-Kartenkarussell-Highlights

Inhaltsverzeichnis Vorwort Aufgabenliste tun Sie ...

Eine kurze Diskussion über React Native APP-Updates

Inhaltsverzeichnis App-Update-Prozess Grobes Flus...

Probleme und Lösungen beim Ersetzen von Oracle durch MySQL

Inhaltsverzeichnis Migrationstools Anwendungstran...

JavaScript fügt Prototyp-Methodenimplementierung für integrierte Objekte hinzu

Die Reihenfolge, in der Objekte Methoden aufrufen...