Kontajnerové porty sú špecifické sieťové porty, ktoré môžu byť viazané na špecifické služby alebo aplikácie v kontajneri.
Každý kontajner môže mať svoje vlastné porty, ktoré možno použiť na komunikáciu s vonkajším svetom alebo na komunikáciu s inými kontajnermi. Pri spúšťaní kontajnera môžete určiť, ktoré porty majú byť dostupné vo vnútri kontajnera a ktoré porty majú byť presmerované na hostiteľský počítač.
ports:
external_port:Internal port
Napríklad prepošleme port 80 ako 8094:
docker-nginx:
image: nginx
ports:
- '8094:80'
Keď je kontajner spustený, aplikácia vo vnútri kontajnera môže počúvať alebo odosielať údaje cez príslušný port. Používatelia môžu s aplikáciou komunikovať prostredníctvom prístupu k portu kontajnera, ktorý bol presmerovaný na hostiteľský počítač.
Ak chcete spustiť kontajnerové porty, musíte použiť príkaz docker run
s príznakom -p
alebo --publish
.
Syntax príkazu docker run s príznakom -p
je nasledujúca:
docker run -p <host port>:<container port> <image_name>
Kde:
<host-port> je port na vašom hostiteľovi, ktorý bude proxovaný na port kontajnera.
<kontajner-port> - port v kontajneri, ku ktorému sa bude pristupovať cez zadaný hostiteľský port.
<názov_obrazu> - názov obrazu kontajnera, ktorý chcete spustiť.
Ak chcete napríklad spustiť kontajner s webovým serverom na porte 80 a proxy na port 8080 vášho hostiteľa, môžete použiť nasledujúci príkaz:
docker run -p 8080:80 nginx
Webový server spustený v kontajneri bude teraz prístupný na porte 8080 vášho hostiteľa.
Môžete tiež použiť rozsah portov zadaním viacerých dvojíc <host-port>:<kontajner-port>.
Napríklad:
docker run -p 8080-8082:80-82 nginx
Týmto spôsobom budú porty 80, 81 a 82 v kontajneri sprostredkované na porty 8080, 8081 a 8082 vášho hostiteľa. Po spustení kontajnera s proxovanými portami k nim budete môcť pristupovať prostredníctvom zadaných portov hostiteľa.