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

Praktischer Bericht zur Lösung des MySQL Deep Paging-Problems

Inhaltsverzeichnis Vorwort Warum wird Limit Deep ...

Spezifische Verwendung von Bootstrap5-Haltepunkten und Containern

Inhaltsverzeichnis 1. Bootstrap5-Haltepunkte 1.1 ...

So installieren Sie Nginx und konfigurieren mehrere Domänennamen

Nginx-Installation CentOS 6.x yum verfügt standar...

Vue verwendet Openlayers zum Laden von Tiandi Map und Amap

Inhaltsverzeichnis 1. Weltkarte 1. Installieren S...

Mit CSS3 können Sie eine schwebende Wolkenanimation erzielen

Wirkung der Operation html <Kopf> <meta ...

Leitfaden zur effizienten Nutzung von MySQL-Indizes

Vorwort Ich glaube, die meisten Leute haben MySQL...

So verwenden Sie den Linux-Befehl „more“ in allgemeinen Linux-Befehlen

more ist eines unserer am häufigsten verwendeten ...

XHTML-Tutorial: Der Unterschied zwischen Transitional und Strict

Tatsächlich ist XHTML 1.0 in zwei Typen unterteil...

Detailliertes Beispiel für MySQL-Joint-Tabellen-Update-Daten

1.MySQL UPDATE JOIN-Syntax In MySQL können Sie di...

CentOS 7 kann nach dem Ändern der Netzwerkkarte nicht auf das Internet zugreifen

Ping www.baidu.com unbekannter Domänenname Ändern...

Docker installiert MySQL und löst das chinesische verstümmelte Problem

Inhaltsverzeichnis 1. Ziehen Sie das MySQL-Image ...