Porturile pentru containere sunt porturi de rețea specifice care pot fi legate de anumite servicii sau aplicații din cadrul unui container.
Fiecare container poate avea propriile porturi care pot fi utilizate pentru a comunica cu lumea exterioară sau pentru a comunica cu alte containere. Atunci când porniți un container, puteți specifica ce porturi ar trebui să fie disponibile în interiorul containerului și ce porturi ar trebui să fie redirecționate către mașina gazdă.
ports:
external_port:Internal port
De exemplu, să redirecționăm portul 80 ca 8094:
docker-nginx:
image: nginx
ports:
- '8094:80'
Atunci când containerul rulează, aplicația din interiorul containerului poate asculta sau trimite date prin portul corespunzător. Utilizatorii pot interacționa cu aplicația prin accesarea portului containerului care a fost redirecționat către mașina gazdă.
Pentru a porni porturile containerului, va trebui să utilizați comanda docker run
cu flagul -p
sau --publish
.
Sintaxa pentru comanda docker run cu flagul -p
este după cum urmează:
docker run -p <host port>:<container port> <image_name>
Unde:
<host-port> este portul de pe gazda dvs. care va fi proxyat către portul containerului.
<container-port> - portul din container care va fi accesat prin portul specificat al gazdei.
<image_name> - numele imaginii containerului pe care doriți să o rulați.
De exemplu, pentru a porni un container cu un server web pe portul 80 și pentru a-l redirecționa către portul 8080 al gazdei, puteți utiliza următoarea comandă:
docker run -p 8080:80 nginx
Serverul web care rulează în container va fi acum accesibil pe portul 8080 al gazdei dumneavoastră.
De asemenea, puteți utiliza un interval de porturi prin specificarea mai multor perechi <port gazdă>:<port container>.
De exemplu:
docker run -p 8080-8082:80-82 nginx
Aceasta va redirecționa porturile 80, 81 și 82 din container către porturile 8080, 8081 și, respectiv, 8082 ale gazdei dvs. Odată ce porniți containerul cu porturile proxy, veți putea să le accesați prin porturile specificate ale gazdei.