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

Vue-Router-Verlaufsmodus, serverseitiger Konfigurationsprozess-Datensatz

Geschichtsroute Der Verlaufsmodus bezieht sich au...

ThingJS-Partikeleffekte, um Regen- und Schneeeffekte mit einem Klick zu erzielen

Inhaltsverzeichnis 1. Partikeleffekte 2. Laden Si...

Beispielcode für die Master-Slave-Trennung einer MySQL-Datenbank

einführen Durch das Einrichten einer Lese-/Schrei...

Beispiel für die Implementierung von Unterstreichungseffekten mit CSS und JS

In diesem Artikel werden hauptsächlich zwei Arten...

Eine kurze Diskussion über Flex-Layout und Skalierungsberechnung

1. Einführung in Flex Layout Flex ist die Abkürzu...

Mehrere Möglichkeiten zum Ändern des MySQL-Passworts

Vorwort: Bei der täglichen Verwendung der Datenba...

CentOS 8-Installationsdiagramm (superdetailliertes Tutorial)

CentOS 8 ist offiziell veröffentlicht! CentOS ent...

MySQLs konzeptionelles Verständnis verschiedener Sperren

Optimistisches Sperren Optimistisches Sperren wir...

Lösung für die falsche Ausrichtung des Eingabecursors in Chrome, Firefox und IE

Detaillierte Erklärung zur Fehlplatzierung des Ein...

Die Verwendung und der Unterschied zwischen JavaScript-Pseudo-Array und Array

Pseudo-Arrays und Arrays In JavaScript sind mit A...