Všetci vedia, že docker run dokáže špecifikovať portové mapovania, ale keď je kontajner vygenerovaný, neexistuje žiadny príkaz, ktorý by sa dal priamo upraviť. Zvyčajne nepriamo uloží obrázok a vytvorí nový kontajner, pričom špecifikuje novú mapu portov v čase vytvorenia.
Existuje spôsob, ako upraviť existujúci kontajner bez uloženia obrázka? Áno. Odpoveď som našiel na stackoverflow, pôvodný príspevok je nasledovný
https://stackoverflow.com/questi ... ng-docker-container
Mapujem port 8080 kontajnera rap2-delos na port 80 hostiteľského strojaPort vyššie, ako je znázornené nižšie:
Hneď terazTeraz chcem namapovať port 8080 kontajnera rap2-delos na port 8080 hostiteľského strojavyššie.
Tutoriál je nasledovný
--Zastav kontajner
--Spustiť docker inspect [CONTAINER ID] | Príkaz Grep ID
--Spustite príkaz cd /var/lib/docker/containers na nájdenie adresára s rovnakým ID, ako je znázornené na obrázku nižšie
Stop docker engine service, systemctl stop docker docker
Upravte konfiguračný súbor hostconfig.json
príklad
Vi hostconfig.json Ak predtým neexistovalo mapovanie portov, mal by tam byť takýto odsek: "PortBindings":{} Pridajte mapovanie, ktoré znie: "PortBindings":{"3306/tcp":[{"HostIp":"","HostPort":"3307"}]} Prvé číslo je kontajnerový port a posledné je hostiteľský port.
Po úprave a uložení konfigurácie konečne spustiť docker službu
SystemCTL Štart Docker
Hotovo
|