Lösen Sie das Problem, dass beim Ausführen von Docker zwei Ports gestartet werden, die unterschiedliche Ports belegen

Lösen Sie das Problem, dass beim Ausführen von Docker zwei Ports gestartet werden, die unterschiedliche Ports belegen

Problembeschreibung:

Nach der Ausführung von docker run -p 19918:19918/tcp -v /etc/localtime:/etc/localtime

Docker ps zeigt, dass Port 19918 und ein weiterer Port gestartet sind und in der Registrierung kein ausführbares Programm gefunden wird.

Problemanalyse:

Der andere gestartete Port wurde zuvor konfiguriert. Es wird spekuliert, dass der vorherige Container zusätzlich zu dem gerade während der Ausführung erstellten Projekt ausgeführt wurde.

Lösung:

Zeigen Sie die Container in Docker-Images an und löschen Sie dieselben und zwei ausgeführte Port-Container. Führen Sie es erneut aus und es zeigt den Erfolg!

Zusammenfassen:

Halten Sie Benennungsnormen ein und entfernen Sie unnötige Container rechtzeitig.

Zusätzliche Kenntnisse: Führen Sie mehrere verschiedene Prozesse aus, wenn Docker gestartet wird, installieren Sie SSH und starten Sie es gleichzeitig mit Jenkins, wenn Docker gestartet wird

Als ich kürzlich an einem Jenkins-Slave-Knoten arbeitete, musste ich SSH installieren, um eine Verbindung mit dem Master herzustellen. Zu diesem Zeitpunkt musste der Slave den SSH-Dienst installieren, aber nachdem der Knoten neu gestartet wurde, musste ich SSH manuell starten.

Um Probleme zu vermeiden, führen Sie SSH- und Jenkins-Dienste aus, wenn Sie starten möchten

1. Wenn Docker ausgeführt wird, sind zum Starten von SSH Root-Berechtigungen erforderlich. Andernfalls haben Sie keine Berechtigung zum Ausführen vieler Dinge auf SSHD.

Fügen Sie daher beim Ausführen von Docker einen Parameter hinzu --user root

docker run -d --user root --name jenkins_nodes3 --add-host gitlab.com:100.20.20.100 -v /home/_data_slave:/var/jenkins_home -p 8188:8080 -p 51005:50000 -p 8122:22 jenkins_ssh

2. Ändern Sie die Startdatei /usr/local/bin/jenkins.sh und fügen Sie die folgende Zeile hinzu

/usr/sbin/sshd -D > null 2>&1 &

Wenn es Ihr eigenes Programm ist, können Sie das Protokoll in Ihre eigene Protokolldatei umleiten

Der obige Artikel zur Lösung des Problems, dass beim Ausführen von Docker zwei Prozesse gestartet werden, die unterschiedliche Ports belegen, ist alles, was ich mit Ihnen teilen kann. Ich hoffe, er kann Ihnen als Referenz dienen, und ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen.

Das könnte Sie auch interessieren:
  • Zwei Möglichkeiten zum Beenden von Bash im Docker-Container unter Linux
  • Docker verwendet Supervisor zur Verwaltung von Prozessvorgängen
  • Aktivieren Sie den SSHD-Vorgang im Docker

<<:  Unbekannte Verwendung von Object.entries in JavaScript

>>:  So erstellen Sie eine Testdatenbank mit zig Millionen Testdaten in MySQL

Artikel empfehlen

JavaScript verwendet häufig Array-Deduplizierung tatsächliche Kampf Quellcode

Mit der Array-Deduplizierung wird man häufig bei ...

Analyse des SELECT-Abfrageausdrucks in der MySQL-Datenbank

Ein großer Teil der Datenverwaltung besteht aus S...

So verwenden Sie Docker Compose zum Implementieren des Nginx-Lastausgleichs

Implementieren Sie den Nginx-Lastausgleich basier...

MySQL hilft Ihnen, Index-Pushdown in Sekunden zu verstehen

Inhaltsverzeichnis 1. Das Prinzip der Index-Push-...

Detaillierte Erläuterung der Docker Swarm-Dienstorchestrierungsbefehle

1. Einleitung Docker verfügt über ein Orchestrier...

Einführung in TypeScript-Schnittstellen

Inhaltsverzeichnis 1. Schnittstellendefinition 2....

Hinweise zum virtuellen Dateisystem des Linux-Kernel-Gerätetreibers

/******************** * Virtuelles Dateisystem VF...

Der Unterschied und die Verwendung von LocalStorage und SessionStorage in Vue

Inhaltsverzeichnis Was ist LocalStorage Was ist S...

Methoden und Techniken zum schnellen Anzeigen von Webseitenbildern

1. Verwenden Sie .gifs statt .jpgs. GIFs sind im ...

Detaillierte Erklärung der Speicher-Engine in MySQL

Übersicht über die MySQL-Speicher-Engine Was ist ...