Kõik teavad, et docker run saab määrata portide kaardistusi, kuid kui konteiner on genereeritud, pole ühtegi käsku, mida saaks otseselt muuta. Tavaliselt kaudselt salvestatakse pilt ja luuakse uus konteiner, määrates uue pordikaardi loomise hetkel.
Kas on võimalik olemasolevat konteinerit muuta ilma pilti salvestamata? Jah. Leidsin vastuse Stackoverflow'st, algne postitus on järgmine
https://stackoverflow.com/questi ... ng-docker-container
Ma kaardistan rap2-delos konteineri 8080 pordi hostmasina 80-gaÜleval olev port, nagu allpool näidatud:
Kohe praeguNüüd tahan kaardistada rap2-delos konteineri 8080 pordi hostmasina 8080 pordigaüleval.
Õpetus on järgmine
--Peata konteiner
--Käivita docker inspektsioon [KONTEINERI ID] | GREP ID juhtkond
--Käivita cd /var/lib/docker/containers käsk, et leida kataloog sama ID-ga, nagu alloleval joonisel näidatud
Stop docker engine service, systemctl stop docker
Muuda hostconfig.json konfiguratsioonifaili
näide
vi hostconfig.json Kui varem portide kaardistamist polnud, peaks olema selline lõik: "PortBindings":{} Lisa kaardistus, mis kõlab järgmiselt: "PortBindings":{"3306/tcp":[{"HostIp":"","HostPort":"3307"}]} Esimene number on konteineri port ja viimane on hostport.
Pärast konfiguratsiooni muutmist ja salvestamist alusta lõpuks dockeri teenust
systemctl start docker
Tehtud
|