Curso de Docker: Fundamentos

Docker run: cómo convertir tu imagen en servidor web

Curso de Docker: Fundamentos

0:007:07

Recursos

Resumen

Convertir una imagen en un contenedor con docker run es el paso que transforma tu proyecto en un servidor web funcional y accesible desde el navegador. Si ya tienes tu imagen lista en Docker Desktop, aquí aprenderás a ejecutarla tanto con un clic como desde la línea de comandos, entendiendo cada parámetro. Ideal para quien empieza con Docker y quiere desplegar sitios sin instalar servidores locales.

Por qué usar la línea de comandos si Docker Desktop es más fácil

Con Docker Desktop, volver contenedor una imagen es cuestión de presionar el botón de play o run [00:12]. Automáticamente aparece el contenedor en la sección correspondiente, con estadísticas del hardware que consume.

Entonces, ¿para qué complicarse? La respuesta tiene que ver con el propósito. Todo lo que ves en las opciones gráficas también se puede hacer por terminal, y aquí viene lo interesante: si quieres automatizar la ejecución de un contenedor en un entorno productivo, la línea de comandos es mucho más práctica [00:56].

¿Cuándo conviene usar Docker Desktop en lugar de la terminal? En tu entorno local, Docker Desktop ayuda a configurar puertos y ejecutar contenedores de forma cómoda. En producción, la línea de comandos gana porque permite automatizar tareas.

En el entorno local, la interfaz gráfica sigue siendo una ayuda fundamental para configurar puertos sin complicaciones.

Qué hace cada parámetro del comando docker run

Antes de ejecutar, conviene confirmar que tu imagen existe con el comando docker images [01:25]. Un detalle importante: aunque detengas un contenedor, este permanece en estado persistente dentro de Docker Desktop. Con docker ps puedes verificar cuáles están realmente en ejecución [01:45].

El comando docker run replica exactamente lo que harías desde la interfaz gráfica, pero con parámetros que te dan control total:

  • -it: modo interactivo. Te permite ver los logs, prints o registros de NGINX o cualquier software directamente en la terminal [02:26].
  • --rm: significa remove. Elimina cualquier versión previa del contenedor que estuviera ejecutándose [02:53].
  • -d: ejecuta el contenedor en segundo plano, listo para ser llamado cuando lo necesites sin invocar la aplicación de forma fortuita [03:07].
  • -p: define los puertos, quizá el parámetro más difícil de entender [03:24].
  • --name: asigna un nombre para ubicar mejor tu contenedor, como web [04:19].

Después de estos parámetros, solo falta indicar la imagen que quieres ejecutar, en este caso sitio-web [04:37].

Cómo funcionan los puertos en Docker

Un puerto es básicamente la puerta de entrada hacia tu aplicación [03:34]. Cada proyecto que desarrolles con Node, Python, Java o .NET tiene ciertos puertos de acceso.

Por seguridad, Docker no expone estos puertos de manera directa. Necesitas crear una especie de túnel entre el puerto por el que tú te comunicas y el puerto interno de la aplicación.

¿Qué significa -p 8080:80 en Docker? El 8080 es el puerto por el que tú accedes a la imagen desde tu máquina, y el 80 es el puerto interno con el que la imagen se comunica con NGINX. Es un túnel entre ambos.

En el ejemplo, el 8080 es el puerto de acceso y el 80 es el puerto con el que la imagen se comunica con NGINX [03:57].

Cómo verificar que tu contenedor funciona correctamente

Una vez ejecutado el comando, el contenedor aparece con el nombre web, la imagen sitio-web y el status en ejecución [04:52]. Todo listo, pero conviene confirmar que tu archivo realmente está dentro.

Aquí entra una función poderosa: la categoría exec o ejecución en Docker Desktop. Te permite navegar dentro de la estructura de archivos de la imagen de NGINX que estás usando [05:14].

Para comprobarlo:

  1. Copia la ruta desde VS Code: usr/share/nginx/html [05:26].
  2. Pégala en Docker Desktop.
  3. Ejecuta el comando ls para ver que ahí está link3.html [05:38].

Con esto confirmas que el contenedor se ejecuta y contiene el archivo que querías desplegar.

Cómo acceder al sitio web desde localhost

Para ver tu sitio, abre una pestaña del navegador y escribe localhost:8080 seguido de link3.html [05:52]. Recuerda que el 8080 es el puerto por el que te comunicas.

Y aquí está la ventaja abismal de Docker: no significa que tú tengas NGINX instalado en tu computadora. Tu máquina se comunica con el contenedor de Docker, que sí tiene NGINX instalado y funcionando como servidor web [06:17].

¿Necesito instalar NGINX en mi computadora para usar Docker? No. El contenedor de Docker ya incluye NGINX. Tu máquina simplemente se comunica con ese contenedor a través del puerto configurado.

Gracias al comando docker run, tienes un Docker container ejecutándose como servidor web, desplegando tu sitio desde un entorno local pero accediendo de forma remota a tu contenedor [06:37].

¿Ya probaste ejecutar tu primer contenedor con estos parámetros? Cuéntanos en los comentarios cómo te fue con la configuración de puertos.

Docker run: cómo convertir tu imagen en servidor web

Curso de Docker: Fundamentos

Clase 8 de 19

Clase 8 / 19