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

Vergleich zwischen Node.js und Deno

Inhaltsverzeichnis Vorwort Was ist Deno? Vergleic...

Detaillierte Analyse des Event-Bubbling-Mechanismus in JavaScript

Was ist Blubbern? Es gibt drei Phasen im DOM-Erei...

Grafisches Tutorial zur Installation von MySQL 5.6.35 unter Windows 10 64-Bit

1. Laden Sie MySQL Community Server 5.6.35 herunt...

Eine kurze Diskussion über JS-Prototypen und Prototypenketten

Inhaltsverzeichnis 1. Prototyp 2. Prototypzeiger:...

Tutorial zur binären Kompilierung und Installation von MySql centos7 unter Linux

// Ich habe einen ganzen Nachmittag für die Insta...

WeChat-Applet zum Speichern von Alben und Bildern in Alben

Ich entwickle derzeit eine Video- und Tool-App, ä...

So erstellen Sie schnell zig Millionen Testdaten in MySQL

Bemerkung: Die Datenmenge in diesem Artikel beträ...

Zusammenfassung zur Verwendung des Ausrufezeichen-Befehls (!) unter Linux

Vorwort Vor kurzem hat unsere Firma MBP konfiguri...

So installieren Sie Theano und Keras auf einem Ubuntu-System

Hinweis: Das System ist Ubuntu 14.04LTS, ein 32-B...

Vue3 AST Parser-Quellcode-Analyse

Inhaltsverzeichnis 1. Generieren Sie einen abstra...

Manjaro-Installation CUDA-Implementierungs-Tutorial-Analyse

Ende letzten Jahres habe ich im Dualsystem meines...

Natives JS zum Erstellen einer Drag-Fotowand

Dieser Artikel zeigt Ihnen eine verschiebbare Fot...