AD

¿Ya dominas lo básico? Un curso estructurado de Docker es la vía rápida para dar el salto.

Ver cursos de Docker en Udemy

Enlace de afiliado. No te cuesta nada extra.

🐳Lecciones de Docker
Lección 17 / 45

Publicar un puerto con docker run -p

En esta lección harás accesible desde fuera un servicio que corre en un contenedor.

docker run -p 8080:80 nginx conecta el puerto 8080 de tu máquina con el 80 del contenedor. A partir de ahí, abrir localhost:8080 en el navegador llega al servidor de dentro.

El orden de los números es anfitrión:contenedor, y confundirlo es el error más repetido de todo Docker. Escribir -p 80:8080 cuando querías lo contrario no da ningún error: simplemente no funciona nada, y el fallo no dice por qué.

Esto explica por qué el contenedor de la lección 6 no se veía en el navegador. Un contenedor está aislado por defecto: nada de dentro es accesible desde fuera mientras no lo publiques explícitamente. Ese aislamiento es una decisión de seguridad, no un descuido.

El puerto del anfitrión debe estar libre. Si ya lo usa otra cosa, el arranque falla con port is already allocated. El del contenedor, en cambio, lo decide la aplicación de dentro y no se puede elegir a voluntad.

Con -P en mayúscula, Docker publica automáticamente los puertos declarados en la imagen en puertos altos al azar. Es cómodo para pruebas rápidas y poco útil cuando necesitas una dirección estable.

Docker
Pruébalo (escríbelo en la terminal simulada)
docker run -p 8080:80 nginx

🧑‍💻 Puedes escribir este comando en la terminal simulada de Docker para probarlo tú mismo (esta página no incluye terminal interactiva).

Espacio publicitario (banner)
Espacio publicitario (en el artículo)