Encontrar el puerto público para un índice específico de contenedor
En escenarios avanzados, un contenedor podría exponer el mismo puerto interno múltiples veces, potencialmente mapeado a diferentes puertos o interfaces del host. Aunque es menos común para servicios simples como Nginx, es posible. En estos casos, el comando docker port
puede devolver múltiples mapeos para un solo puerto interno.
Para recuperar un mapeo específico cuando existen varios, puedes usar un índice. La salida de docker port
para un puerto interno dado es una lista de mapeos. Puedes acceder a un mapeo específico mediante su índice, comenzando desde 0.
Supongamos, a modo de demostración, que nuestro contenedor Nginx tuviera múltiples mapeos para el puerto 80. Para obtener el primer mapeo (índice 0), usarías el siguiente formato de comando:
docker port [CONTAINER_ID] [CONTAINER_PORT]/[PROTOCOL]/[INDEX]
Usando nuestro ejemplo de Nginx, para obtener el primer mapeo del puerto interno 80 TCP, usarías:
docker port [CONTAINER_ID] 80/tcp/0
Reemplaza [CONTAINER_ID]
con el ID real de tu contenedor Nginx.
Como nuestro contenedor Nginx solo tiene un mapeo para el puerto 80/tcp, este comando devolverá el mismo resultado que docker port [CONTAINER_ID] 80/tcp
, que sería 0.0.0.0:8080
.
Aunque este ejemplo específico con Nginx podría no mostrar todo el potencial del uso de índices (ya que solo hay un mapeo), entender esta capacidad es importante para configuraciones de contenedores más complejas donde podrían existir múltiples mapeos para el mismo puerto interno.