Beispiel zum Hochladen eines Docker-Images in ein privates Repository

Beispiel zum Hochladen eines Docker-Images in ein privates Repository

Das Image kann problemlos direkt in das öffentliche Docker-Repository übertragen werden, genau wie bei GitHub, aber wir möchten die Image-Datei während der Entwicklung oft nicht öffentlich machen. In diesem Fall müssen wir ein privates Docker-Repository erstellen, genau wie bei GitLab.

Nachdem wir das Image im vorherigen Artikel erstellt haben, können wir ein privates Image-Repository zum Speichern unseres Images bereitstellen.

Starten Sie ein privates Register

Das Starten eines privaten Repositorys ist ebenfalls sehr einfach. Führen Sie den Befehl auf dem Server aus

Kopieren Sie den Code wie folgt:
docker run -d -p 5000:5000 --name="docker-registry" --restart=always -v /root/docker/registry/:/var/lib/registry/ Registrierung

Das heißt, der vom Registrierungsimage erstellte Container wird im Hintergrund gestartet, erhält den Namen docker-registry und die Portnummer wird auf 5000 bis 5000 abgebildet.

--restart=always bedeutet, dass der Container automatisch neu gestartet wird, wenn er aus irgendeinem Grund gestoppt wird, unabhängig vom Exitcode. Neben always gibt es auch on-failure , was bedeutet, dass nur dann ein Neustart durchgeführt wird, wenn der Exitcode ungleich 0 ist, und den Parameter „Neustartanzahl“ akzeptiert: --restart=on-failture:5

-v gibt an, dass das Verzeichnis /root/docker/registry/ des Hosts im Verzeichnis /var/lib/registry/ des Containers gemountet wird. Auf diese Weise können wir auf das Verzeichnis zugreifen, das uns im Container auf dem Hostcomputer interessiert, ohne den Container zu betreten.

Warum /var/lib/registry/ ?
Standardmäßig speichert das Repository Bilder und andere Informationen im Verzeichnis /var/lib/registry/docker des Containers. Sie können dieses Verzeichnis aufrufen, um die hochgeladenen Bildinformationen anzuzeigen.

Nachdem Sie den run -Befehl erfolgreich ausgeführt haben, können Sie mithilfe docker ps überprüfen, ob der Registrierungsdienst gestartet wurde:

Bild hochladen

Um ein Bild in ein privates Repository hochzuladen, müssen Sie dem Bild-Tag die Repository-Adresse hinzufügen:

Docker-Tag Express-App 111.111.111.111:5000/sunhengzhe/Express-App:v1

Um Konflikte mit anderen Bildern zu vermeiden, können Sie einen Namespace wie sunhengzhe hinzufügen. Darüber hinaus empfiehlt es sich, das Bild mit einem Tag wie v1 zu versehen.

Beachten Sie, dass die Repository-Adresse den Protokollteil nicht enthält. Die Standardsicherheitsrichtlinie von Docker erfordert, dass das Repository https unterstützt. Wenn der Server nur die HTTP-Übertragung verwenden kann, schlägt der direkte Upload fehl. Dies muss in der Konfigurationsdatei des Docker-Clients deklariert werden.

Mac-Konfiguration

Nach der Änderung müssen Sie Apply & Restart

CentOS-System

Schreiben Sie in die Datei /etc/docker/daemon.json :

{
 "Registrierungsspiegel": [
  „https://registry.docker-cn.com“
 ],
 "unsichere-Registrierungen": [
  „[privates Lager IP:Port]“
 ]
}

Starten Sie dann Docker neu

systemctl Neustart Docker

Bild hochladen

Nachdem Sie tag eingegeben haben, verwenden Sie den push -Befehl, um es zu pushen:

Docker Push 111.111.111.111:5000/sunhengzhe/express-app:v1 

Push fehlgeschlagen

Wenn das Problem auftritt, dass Retrying in 5 seconds und das Hochladen dann fehlschlägt. Sie können zunächst den Befehl logs auf dem Server verwenden, um die Protokolle anzuzeigen:

Docker-Protokolle -f Docker-Registrierung

-f bedeutet kontinuierliche Ausgabe des Dateiinhalts.

Wenn filesystem: mkdir /var/lib/registry/docker: permission denied erscheint, handelt es sich möglicherweise um ein Selinux-Problem und Sie müssen das Mount-Verzeichnis auf dem Server bearbeiten:

chcon -Rt svirt_sandbox_file_t /root/docker/registry/

In diesem Beispiel ist es /root/docker/registry/ .

Ziehen Sie das Bild

Verwenden des pull -Befehls

Docker-Pull 111.111.111.111:5000/sunhengzhe/express-app:v1

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 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
  • 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
  • Detaillierte Erläuterung des Aufbaus und der Schnittstellenverwaltung des Docker Private Warehouse

<<:  So importieren Sie eine JS-Konfigurationsdatei auf den Vue-Server

>>:  Tutorial zur Installation und Konfiguration der dekomprimierten Version von mysql5.7.19 winx64

Artikel empfehlen

Eine kurze Erläuterung der Unterschiede zwischen FTP, FTPS und SFTP

Inhaltsverzeichnis Einführung in FTP, FTPS und SF...

Überblick und Einführung in das Linux-Betriebssystem

Inhaltsverzeichnis 1. Was ist ein Betriebssystem?...

Beispiel zur MySQL-Passwortänderung – ausführliche Erklärung

Beispiel zur MySQL-Passwortänderung – ausführlich...

Vue implementiert Modal-Komponente basierend auf Teleport

Inhaltsverzeichnis 1. Lernen Sie Teleport kennen ...

Lösen Sie das Problem inkonsistenter Front- und Back-End-Ports von Vue

Die Front- und Back-End-Ports von Vue sind inkons...

Eine Codezeile löst verschiedene IE-Kompatibilitätsprobleme (IE6-IE10)

x-ua-compatible wird verwendet, um das Modell für...

Einführung in das Enctype-Attribut des Form-Tags und seine Anwendungsbeispiele

Enctype: Gibt den Kodierungstyp an, der vom Browse...

Web-Standardanwendung: Neugestaltung der Tencent QQ-Homepage

Die Homepage von Tencent QQ wurde neu gestaltet un...

Implementierung der Header-Informationen für Nginx-Operationsantworten

Voraussetzung: Sie müssen das Modul ngx_http_head...

CSS3 realisiert den verschiebbaren Zauberwürfel-3D-Effekt

Hauptsächlich verwendete Wissenspunkte: •CSS3 3D-...

JavaScript zum Erzielen eines elastischen Navigationseffekts

In diesem Artikel wird der spezifische Code für J...

Erläuterung der Array-Verarbeitung in React und Redux

Dieser Artikel stellt einige häufig verwendete Fu...

Softwaretests – MySQL (VI: Datenbankfunktionen)

1.MySQL-Funktionen 1. Mathematische Funktionen PI...