Alle ved, at docker run kan specificere portmapping, men når en container er genereret, er der ingen kommando, der kan ændres direkte. Normalt indirekte gem billedet og opret en ny container, hvor det nye portkort angives på oprettelsestidspunktet.
Er der en måde at ændre den eksisterende container uden at gemme billedet? Ja. Jeg fandt svaret på stackoverflow, det oprindelige opslag er som følger
https://stackoverflow.com/questi ... ng-docker-container
Jeg mapper 8080-porten fra rap2-delos-containeren til 80-porten på værtsmaskinenPort ovenfor, som vist nedenfor:
Lige nuNu vil jeg mappe 8080-porten fra rap2-delos-containeren til 8080-porten på værtsmaskinenovenfor.
Tutorialen er som følger
--Stop container
--Kør docker inspect [CONTAINER ID] | grep id kommando
--Kør kommandoen cd /var/lib/docker/containers for at finde mappen med samme ID, som vist i figuren nedenfor
Stop docker engine service, systemctl stop docker
Ændr hostconfig.json konfigurationsfilen
eksempel
vi hostconfig.json Hvis der ikke var nogen portmapping før, burde der være et afsnit som dette: "PortBindings":{} Tilføj et kort, der lyder: "PortBindings":{"3306/tcp":[{"HostIp":"","HostPort":"3307"}]} Det første nummer er containerhavnen, og den sidste er værtsporten.
Efter at have ændret og gemt konfigurationen, starter jeg endelig docker-tjenesten
SystemCTL Start Docker
Færdig
|