Jeder weiß, dass Docker Run Port-Mappings spezifizieren kann, aber sobald ein Container erzeugt ist, gibt es keinen Befehl, der direkt geändert werden kann. In der Regel wird indirekt das Bild gespeichert und ein neuer Container erstellt, wobei die neue Portkarte zum Zeitpunkt der Erstellung angegeben wird.
Gibt es eine Möglichkeit, den bestehenden Container zu verändern, ohne das Image zu speichern? Ja. Ich habe die Antwort auf StackOverflow gefunden, der ursprüngliche Beitrag lautet wie folgt
https://stackoverflow.com/questi ... ng-docker-container
Ich mappe den 8080-Port des rap2-delos-Containers auf den 80-Port des Host-RechnersPort oben, wie unten gezeigt:
Jetzt geradeIch möchte jetzt den 8080-Port des rap2-delos-Containers auf den 8080-Port des Host-Rechners abbildenoben.
Das Tutorial ist wie folgt
--Container stoppen
--Docker-Inspektion ausführen [CONTAINER-ID] | grep id Befehl
--Führe den Befehl cd /var/lib/docker/containers aus, um das Verzeichnis mit derselben ID zu finden, wie in der Abbildung unten gezeigt
Stopp Docker Engine Service, systemctl stop docker
Ändern Sie die hostconfig.json Konfigurationsdatei
Beispiel
vi hostconfig.json Wenn es vorher keine Portzuordnung gab, sollte es einen Absatz wie diesen geben: "PortBindings":{} Fügen Sie eine Karte hinzu, die lautet: "PortBindings":{"3306/tcp":[{"HostIp":"","HostPort":"3307"}]} Die erste Nummer ist der Containerhafen, die letzte der Gasthafen.
Nach der Änderung und dem Speichern der Konfiguration starte ich schließlich den Docker-Dienst
SystemCTL Start Docker
Fertig
|