Všichni vědí, že docker run může specifikovat mapování portů, ale jakmile je kontejner vygenerován, neexistuje žádný příkaz, který by bylo možné přímo upravit. Obvykle nepřímo uloží obrázek a vytvoří nový kontejner, přičemž při vytvoření specifikuje novou mapu portů.
Existuje způsob, jak upravit stávající kontejner bez uložení obrázku? Ano. Odpověď jsem našel na stackoverflow, původní příspěvek je následující
https://stackoverflow.com/questi ... ng-docker-container
Mapuji port 8080 kontejneru rap2-delos na port 80 hostitelského počítačePort výše, jak je vidět níže:
Hned teďNyní chci namapovat port 8080 kontejneru rap2-delos na port 8080 hostitelského strojevýše.
Tutoriál vypadá takto
--Zastavovací kontejner
--Spusťte docker inspect [CONTAINER ID] | Příkaz Grep ID
--Spusť příkaz cd /var/lib/docker/containers a najdi adresář se stejným ID, jak je znázorněno na obrázku níže
Stop docker engine service, systemctl stop docker
Upravte konfigurační soubor hostconfig.json
příklad
Vi hostconfig.json Pokud předtím nebylo portové mapování, měl by tam být odstavec jako tento: "PortBindings":{} Přidejte mapování, které zní: "PortBindings":{"3306/tcp":[{"HostIp":"","HostPort":"3307"}]} První číslo je kontejnerový port a poslední je hostitelský port.
Po úpravě a uložení konfigurace konečně spusťte docker službu
SystemCTL Start Docker
Hotovo
|