Wszyscy wiedzą, że docker run może określić mapowanie portów, ale po wygenerowaniu kontenera nie ma już polecenia, które można bezpośrednio zmienić. Zazwyczaj pośrednio zapisuje się obraz i tworzy nowy kontener, określając nową mapę portów w momencie tworzenia.
Czy istnieje sposób, aby zmodyfikować istniejący kontener bez zapisywania obrazu? Tak. Znalazłem odpowiedź na stackoverflow, oryginalny post wygląda następująco
https://stackoverflow.com/questi ... ng-docker-container
Mapuję port 8080 kontenera rap2-delos na port 80 maszyny hostaPort powyżej, jak pokazano poniżej:
TerazTeraz chcę zmapować port 8080 kontenera rap2-delos na port 8080 maszyny hostapowyżej.
Samouczek wygląda następująco
--Kontener stop
--Uruchom docker inspect [CONTAINER ID] | Polecenie grep ID
--Uruchom polecenie cd /var/lib/docker/containers, aby znaleźć katalog o tym samym ID, jak pokazano na poniższym rysunku
Stop docker engine service, systemctl stop docker docker
Zmodyfikuj plik konfiguracyjny hostconfig.json
przykład
Vi hostconfig.json Jeśli wcześniej nie było mapowania portów, powinien być taki akapit: "PortBindings":{} Dodaj mapowanie, które brzmi: "PortBindings":{"3306/tcp":[{"HostIp":"","HostPort":"3307"}]} Pierwsza liczba to port kontenerowy, a ostatnia to port hosta.
Po modyfikacji i zapisaniu konfiguracji, w końcu uruchamiam usługę docker
Systemctl Start Docker
Gotowe
|