docker port în Docker

Containere Docker 1.0+

Arată pe ce adrese și porturi ale gazdei sunt publicate porturile unui container.

Sintaxă comandă
docker port <container> [<port_privat>[/protocol]]

Ce face docker port

Când pornești un container cu -p 8080:80, portul 80 din container devine accesibil pe portul 8080 al gazdei. docker port afișează aceste asocieri, câte una pe linie, pentru IPv4 și IPv6.

Este utilă mai ales cu -P (litera mare) sau cu -p 80 fără port pe gazdă: atunci Docker alege singur un port liber, iar docker port îți spune care este. Comanda nu arată porturile declarate doar cu EXPOSE și nepublicate.

Parametri

Parametru Descriere
&lt;container&gt; Numele sau ID-ul containerului.
&lt;port&gt;[/tcp|/udp] Afișează doar asocierea pentru un port din container.

Exemple

Exemplul 1: Porturile unui server web

Portul 80 al containerului este publicat pe 8080, pe toate interfețele, IPv4 și IPv6.

docker run -d --name web-iasi -p 8080:80 nginx:1.27-alpine
docker port web-iasi

Ieșire în terminal

80/tcp -> 0.0.0.0:8080
80/tcp -> [::]:8080

Exemplul 2: Aflarea portului ales automat

Cu -P, Docker publică porturile din EXPOSE pe porturi libere; cerem doar pe cel pentru 5432.

docker run -d --name db-test -P -e POSTGRES_PASSWORD=test postgres:17
docker port db-test 5432/tcp

Ieșire în terminal

0.0.0.0:55001
[::]:55001

Greșeli frecvente

  • Așteptarea ca docker port să afișeze ceva pentru un container pornit fără -p/-P: fără publicare, ieșirea este goală, chiar dacă imaginea are EXPOSE.
  • Publicarea bazelor de date pe toate interfețele (0.0.0.0) pe un server public: limitează la gazda locală cu -p 127.0.0.1:5432:5432.

Comenzi înrudite

  • docker create: Creează un container cu toate setările lui, fără să-l pornească; îl pornești mai târziu cu docker start.
  • docker rename: Schimbă numele unui container existent, pornit sau oprit, fără să-l recreezi.