Detaillierte Erläuterung des Aufbaus und der Schnittstellenverwaltung des Docker Private Warehouse

Detaillierte Erläuterung des Aufbaus und der Schnittstellenverwaltung des Docker Private Warehouse

1. Über die Registrierung

Der offizielle Docker-Hub ist ein guter Ort, um öffentliche Images zu verwalten. Wir können dort die gewünschten Images finden und unsere eigenen Images hochladen.

Für unsere Anwendungsszenarien ist es manchmal jedoch erforderlich, dass wir über ein privates Bild-Repository verfügen, um unsere eigenen Bilder zu verwalten. Dies kann durch die Open-Source-Software Registry erreicht werden.

Das Register hat zwei Codes auf GitHub: die alte Codebasis und die neue Codebasis. Der alte Code ist in Python geschrieben und hat Leistungsprobleme beim Pull und Push. Nach Version 0.9.1 wurde er als veraltet markiert und wird nicht mehr weiterentwickelt.

Ab Version 2.0 wurde mit der Entwicklung einer neuen Codebasis begonnen, die in der Sprache Go geschrieben ist. Der Algorithmus zur Bild-ID-Generierung und die Bildspeicherstruktur im Register wurden geändert, wodurch die Effizienz beim Pullen und Pushen von Bildern erheblich optimiert wurde.

Das offizielle Registrierungsimage wird auf dem Docker-Hub bereitgestellt. Wir können das Registrierungsimage direkt verwenden, um einen Container zu erstellen und unseren eigenen privaten Lagerdienst aufzubauen.

2. Registrierung erstellen

Suchen und ziehen Sie zuerst das Bild

docker search registry # Es wird empfohlen, zuerst zu suchen. Sie können sich die zugehörigen Bilder ansehen. Vielleicht gibt es irgendwann bessere Bilder. docker pull registry # Sie müssen kein Tag hinzufügen, da das neueste v2 ist.

Ausführen eines Registrierungscontainers

docker run -d \ # Im Hintergrund ausführen --name registry-srv \ # Den Containernamen angeben --restart=always \ # Automatischen Start festlegen -p 5000:5000 \ # Port-Mapping-Host, Zugriff über die Hostadresse -v /opt/zwx-registry:/var/lib/registry \ # Das Image-Speicherverzeichnis lokal mounten, um die Verwaltung zu vereinfachen und die Speicherung zu vereinfachen -v /opt/zwx-registry/srv-config.yml:/etc/docker/registry/config.yml \ # Die Konfigurationsdatei lokal mounten, um die Änderung und Speicherung der Registrierung zu erleichtern

Der Inhalt von srv-config.yml ist wie folgt

Damit das Warehouse die Löschfunktion unterstützen kann, wird der rot markierte Löschparameter auf „true“ gesetzt. Dieser Parameter ist standardmäßig nicht verfügbar, was bedeutet, dass das Repository-Image nicht gelöscht werden kann.

Version: 0.1
Protokoll:
 Felder:
 Dienst: Registrierung
Lagerung:
 löschen:
 aktiviert: true
 Cache:
 Blobdeskriptor: im Speicher
 Dateisystem:
 Stammverzeichnis: /var/lib/registry
http:
 Adresse: :5000
 Überschriften:
 X-Inhaltstyp-Optionen: [nosniff]
Gesundheit:
 Speichertreiber:
 aktiviert: true
 Intervall: 10s
 Schwellenwert: 3

Registrieren Sie das https-Protokoll (sonst schlägt die Push-Sicherheitsauthentifizierung fehl)

Sie müssen das Bild über das lokale Lager herunterladen und konfigurieren

vim /etc/docker/daemon.json # Diese Datei existiert standardmäßig nicht, Sie müssen sie selbst hinzufügen. Wenn sie existiert, hängen Sie den folgenden Inhalt an.
{ "insecure-registries":["xx.xx.xx.xx:5000"] } # IP-Adresse oder Domänennamen angeben systemctl daemon-reload # Daemon neu starten systemctl restart docker # Docker-Dienst neu starten

Bildupload und -download

docker push xx.xx.xx.xx:5000/nginx # Geben Sie unbedingt die Lageradresse an, da sonst ein Fehler gemeldet wird docker pull xx.xx.xx.xx:5000/nginx

Lagerspiegelinformationen anzeigen

curl -XGET http://xx.xx.xx.xx:5000/v2/_catalog # Sehen Sie sich die Bilderliste des Repositorys an (Sie können sie auch über einen Windows-Browser öffnen)
curl -XGET http://xx.xx.xx.xx:5000/v2/image_name/tags/list # Zeigt das angegebene Anwendungsbild-Tag an

3. Erstellen Sie das Registry-Web

Suchen und ziehen Sie zuerst das Bild

Docker-Suche Docker-Registry-Web
docker pull hyper/docker-registry-web # Dieses Image wird von vielen Leuten verwendet

Ausführen eines Registrierungs-Webcontainers

docker run -d \ # Im Hintergrund ausführen --name registry-web \ # Den Containernamen angeben --restart=always \ # Automatischen Start einstellen -p 8000:8080 \ # Port-Mapping-Host, Zugriff über die Hostadresse -v /opt/zwx-registry/web-config.yml:/etc/config.yml \ # Konfigurationsdatei lokal mounten zum einfachen Ändern und Speichern hyper/docker-registry-web

Der Inhalt der Datei web-config.yml ist wie folgt

Der rote schreibgeschützte Parameter wird auf „false“ gesetzt, damit die Webseite eine Schaltfläche „Löschen“ anzeigen kann. Der Standardwert ist „True“, schreibgeschützter Status, keine Löschtaste, nur Anzeigen.

Registrierung:
 # Docker-Registrierungs-URL
 URL: http://10.88.77.32:5000/v2
 # FQDN der Docker-Registrierung
 Name: localhost:5000
 # Um das Löschen von Bildern zuzulassen, sollte „false“ sein.
 schreibgeschützt: false
 Autorisierung:
 # Authentifizierung deaktivieren
 aktiviert: false

Nachdem die Bereitstellung abgeschlossen ist, können Sie alle Anwendungsbilder anzeigen, indem Sie die Repository-UI-Adresse im Browser öffnen.


Wählen Sie eine beliebige Anwendungsbildbibliothek aus, um alle Tag-Informationen des Bildes anzuzeigen. Nach jedem Tag gibt es eine Schaltfläche zum Löschen (standardmäßig nicht vorhanden, siehe config.yml für die Konfiguration).

4. Schnelle Bereitstellung

Im Clustermodus können Sie Registry und Registry-Web schnell über den Docker-Stack bereitstellen.

Erstellen Sie die neuen Konfigurationsdateien srv-config.yml und web-config.yml und legen Sie sie im angegebenen Pfad ab. Erstellen Sie dann eine neue Datei docker-compose.yml und führen Sie den Befehl aus.

Docker-Stack bereitstellen -c docker-compose.yml RGT
Version: „3.7“ # Docker-Stack muss Version 3.0 oder höher sein. Dienste:
 registry-srv: # Dienstnameimage: Registrierung
 
 Ports: #Zugeordneter Port - 5000:5000
  
 volumes: # Mounten Sie den Image-Pfad und die Konfigurationsdatei. Beachten Sie, dass der geänderte Pfad mit dem tatsächlichen übereinstimmen muss - /opt/zwx-registry:/var/lib/registry
  - /opt/zwx-registry/srv-config.yml:/etc/docker/registry/config.yml
  
 Bereitstellen: # Legen Sie eine einzelne Aufgabe fest und beschränken Sie den Masterknoten auf den Ausführungsmodus: repliziert
  Replikate: 1
  Platzierung:
  Einschränkungen:
   - node.role == Manager
  
 Registry-Web: #Dienstnameimage: hyper/docker-registry-web
 
 Ports: Anzahl der zugeordneten Ports - 8000:8080
 
 volumes: #Mounten Sie die Konfigurationsdatei. Beachten Sie, dass der geänderte Pfad mit dem tatsächlichen Pfad übereinstimmen muss - /opt/zwx-registry/web-config.yml:/conf/config.yml
  
 Umfeld:
  – REGISTRY_URL=http://registry-srv:5000/v2
  – REGISTRY_NAME=localhost:5000
 
 Bereitstellen: # Legen Sie eine einzelne Aufgabe fest und beschränken Sie den Masterknoten auf den Ausführungsmodus: repliziert
  Replikate: 1
  Platzierung:
  Einschränkungen:
   - node.role == Manager

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM.

Das könnte Sie auch interessieren:
  • Detaillierte Schritte zum Erstellen eines privaten Docker Registry-Warehouses
  • Detaillierte Schritte für Docker zum Erstellen eines lokalen privaten Lagers
  • Verwaltung privater Docker-Repositorys und Löschen von Bildern in lokalen Repositorys
  • So fragen Sie Bilder in einem privaten Register ab oder erhalten sie
  • Docker-Tutorial: Privates Lager – detaillierte Erklärung
  • Beispiel zum Hochladen eines Docker-Images in ein privates Repository
  • Detaillierte Erläuterung der Installation des privaten Lagers von Centos7 Docker1.12
  • Detaillierte Erklärung zum einfachsten Aufbau eines privaten Docker-Warehouses
  • Detaillierte Erläuterung des Aufbaus und der Verwendung des Docker Private Warehouse
  • Detaillierte Erklärung zu CentOS 7: Aufbau und Verwendung eines privaten Docker-Warehouses

<<:  MySQL-Deadlock-Routine: inkonsistente Batch-Einfügereihenfolge unter eindeutigem Index

>>:  WeChat-Applet zur automatischen Videowiedergabe imitiert Beispiel eines GIF-Animationseffekts

Artikel empfehlen

Meta Viewport ermöglicht die Vollbildanzeige von Webseiten auf dem iPhone

In meiner Verzweiflung dachte ich plötzlich: Wie i...

Detaillierte Erklärung des Befehls mkdir beim Linux-Lernen

Inhaltsverzeichnis Vorwort 1. Grundkenntnisse zu ...

Css3 realisiert nahtloses Scrollen und Anti-Shake

Frage Das nahtlose Scrollen von Bildern und Texte...

Integrationspraxis des Vue+Element-Hintergrundverwaltungsframeworks

Inhaltsverzeichnis Vue+ElementUI-Hintergrundverwa...

Detaillierte Erklärung des JavaScript-Statuscontainers Redux

Inhaltsverzeichnis 1. Warum Redux 2. Redux-Datenf...

Wie MLSQL Stack das Stream-Debugging vereinfacht

Vorwort Ein Klassenkamerad untersucht die Streami...

Fassen Sie die häufigsten Anwendungsprobleme von XHTML-Code zusammen

<br />Ich habe festgestellt, dass viele Leut...

MySQL-Onlineprobleme mit langsamem Log und Optimierungslösungen

Das MySQL-Slow-Log ist ein Informationstyp, auf d...

Zusammenfassung der Docker-Datenspeicherung

Bevor Sie diesen Artikel lesen, hoffe ich, dass S...

Details zur Destrukturierungszuweisung in Javascript

Inhaltsverzeichnis 1. Array-Dekonstruktion 2. Obj...