Containerportar är specifika nätverksportar som kan kopplas till specifika tjänster eller applikationer inom en container.
Varje behållare kan ha egna portar som kan användas för att kommunicera med omvärlden eller med andra behållare. När du startar en container kan du ange vilka portar som ska vara tillgängliga inuti containern och vilka portar som ska vidarebefordras till värddatorn.
ports:
external_port:Internal port
Låt oss till exempel vidarebefordra port 80 som 8094:
docker-nginx:
image: nginx
ports:
- '8094:80'
När behållaren körs kan applikationen inuti behållaren lyssna eller skicka data via lämplig port. Användare kan interagera med applikationen genom att komma åt den containerport som vidarebefordrades till värddatorn.
Om du vill starta containerportar måste du använda kommandot docker run
med flaggan -p
eller --publish
.
Syntaxen för kommandot docker run med flaggan -p
är som följer:
docker run -p <host port>:<container port> <image_name>
Där:
<host-port> är den port på din värd som kommer att proxies till containerporten.
<container-port> - den port i containern som kommer att nås via den angivna värdporten.
<image_name> - namnet på den containeravbildning som du vill köra.
Om du t.ex. vill starta en container med en webbserver på port 80 och proxya den till port 8080 på din värd kan du använda följande kommando:
docker run -p 8080:80 nginx
Webbservern som körs i behållaren kommer nu att vara tillgänglig på port 8080 på din värd.
Du kan också använda ett portintervall genom att ange flera par <host-port>:<container-port>.
Ett exempel:
docker run -p 8080-8082:80-82 nginx
Detta kommer att proxyportarna 80, 81 och 82 i behållaren till portarna 8080, 8081 respektive 8082 i din värd. När du har startat behållaren med de proxade portarna kommer du att kunna komma åt dem via de angivna värdportarna.