Containerporte er specifikke netværksporte, der kan bindes til specifikke tjenester eller programmer i en container.
Hver container kan have sine egne porte, som kan bruges til at kommunikere med omverdenen eller til at kommunikere med andre containere. Når man starter en container, kan man angive, hvilke porte der skal være tilgængelige inde i containeren, og hvilke porte der skal videresendes til værtsmaskinen.
ports:
external_port:Internal port
Lad os f.eks. videresende port 80 som 8094:
docker-nginx:
image: nginx
ports:
- '8094:80'
Når containeren kører, kan applikationen inde i containeren lytte eller sende data gennem den relevante port. Brugere kan interagere med applikationen ved at tilgå den containerport, der blev videresendt til værtsmaskinen.
For at starte containerporte skal du bruge kommandoen docker run
med flaget -p
eller --publish
.
Syntaksen for kommandoen docker run med -p-flaget
er som følger:
docker run -p <host port>:<container port> <image_name>
Hvor:
<host-port> er den port på din host, der vil blive proxyet til containerporten.
<container-port> - porten i containeren, som vil blive tilgået via den angivne host-port.
<image_name> - navnet på det containerbillede, du vil køre.
Hvis du f.eks. vil starte en container med en webserver på port 80 og proxy'e den til port 8080 på din host, kan du bruge følgende kommando:
docker run -p 8080:80 nginx
Webserveren, der kører i containeren, vil nu være tilgængelig på port 8080 på din host.
Du kan også bruge et portinterval ved at angive flere <host-port>:<container-port>-par.
For eksempel:
docker run -p 8080-8082:80-82 nginx
Dette vil proxy-porte 80, 81 og 82 i containeren til henholdsvis port 8080, 8081 og 8082 på din host. Når du starter containeren med de proxyede porte, vil du kunne få adgang til dem via de angivne værtsporte.