Porty kontejneru jsou specifické síťové porty, které lze v rámci kontejneru vázat na konkrétní služby nebo aplikace.
Každý kontejner může mít své vlastní porty, které lze použít ke komunikaci s okolním světem nebo ke komunikaci s jinými kontejnery. Při spouštění kontejneru můžete určit, které porty mají být dostupné uvnitř kontejneru a které porty mají být předány hostitelskému počítači.
ports:
external_port:Internal port
Například předejme port 80 jako 8094:
docker-nginx:
image: nginx
ports:
- '8094:80'
Když je kontejner spuštěn, aplikace uvnitř kontejneru může naslouchat nebo odesílat data přes příslušný port. Uživatelé mohou s aplikací komunikovat prostřednictvím přístupu k portu kontejneru, který byl přesměrován na hostitelský počítač.
Chcete-li spustit porty kontejneru, musíte použít příkaz docker run
s příznakem -p
nebo --publish
.
Syntaxe příkazu docker run s příznakem -p
je následující:
docker run -p <host port>:<container port> <image_name>
Kde:
<host-port> je port na hostiteli, který bude proxován na port kontejneru.
<port kontejneru> - port v kontejneru, který bude přístupný přes zadaný port hostitele.
<název_obrazu> - název obrazu kontejneru, který chcete spustit.
Chcete-li například spustit kontejner s webovým serverem na portu 80 a proxy na port 8080 hostitele, můžete použít následující příkaz:
docker run -p 8080:80 nginx
Webový server spuštěný v kontejneru bude nyní přístupný na portu 8080 vašeho hostitele.
Můžete také použít rozsah portů zadáním více dvojic <host-port>:<port kontejneru>.
Například:
docker run -p 8080-8082:80-82 nginx
Tímto způsobem budou porty 80, 81 a 82 v kontejneru zprostředkovány na porty 8080, 8081 a 8082 vašeho hostitele. Jakmile spustíte kontejner s proxovanými porty, budete k nim moci přistupovat prostřednictvím zadaných portů hostitele.