Guía paso a paso para levantar un servidor web con Nginx en Docker (voseo)

DUGLAS MORENODUGLAS MORENO 👁 16

Introducción

Si querés levantar un servidor web usando Nginx dentro de un contenedor Docker y ver la página por defecto en el navegador, tenés una solución rápida y eficiente. Este artículo te guía desde el principio hasta el final, con comandos ejecutables y salidas esperadas. Ideal para desarrolladores o personas que quieren entender cómo funciona la containerización.

A quién va dirigido

Este tutorial está orientado a quienes ya tengan Docker instalado y deseen aprender a desplegar servicios web de forma sencilla. No se requiere experiencia avanzada en Docker, solo seguir los pasos con atención.

Qué aprenderás

  • Cómo descargar y ejecutar una imagen de Nginx en Docker.
  • Cómo mapear puertos para acceder al servidor desde tu navegador.
  • Cómo verificar que el contenedor está funcionando correctamente.

Desarrollo

Paso 1: Asegurarte de tener Docker instalado

Antes de empezar, tenés que verificar que Docker está instalado y corriendo en tu sistema. Podés hacerlo con los siguientes comandos:

# Verificar la versión de Docker
 docker --version

# Verificar si el servicio Docker está activo
 systemctl status docker

Salida esperada:

  • Si Docker está instalado, verás la versión (ej. Docker version 20.10.12, build...).
  • Si el servicio está activo, saldrá un mensaje como Active: active (running).

Error común: Docker no instalado

Si al ejecutar docker --version te da un error, tenés que instalar Docker según el sistema operativo que usás (Linux, Windows o macOS).

Paso 2: Descargar la imagen de Nginx en Docker

Para levantar un servidor web, usamos una imagen lista de Nginx. Ejetsú el siguiente comando:

# Descargar la imagen oficial de Nginx
 docker pull nginx

Salida esperada:

  • Se descargará la imagen nginx desde Docker Hub. La salida mostrará porcentajes de descarga y confirmará al final con algo como Successfully pulled image....

Si ya tenés la imagen, Docker la reutilizará sin necesidad de descargarla de nuevo.

Paso 3: Levantar un contenedor con Nginx

Ahora levantamos el contenedor. Este comando creará un contenedor queejecuta Nginx y mapea el puerto 80 del contenedor al puerto 8080 de tu máquina:

# Levantar el contenedor en modo detached (-d) y mapear el puerto
 docker run -d -p 8080:80 nginx

Salida esperada:

  • Docker asignará un ID único al contenedor (ej. a1b2c3d4e5f6).
  • Un mensaje similar a Started a1b2c3d4e5f6_1 on port 8080/tcp.

Explicación de los parámetros:

  • -d: Ejecuta el contenedor en segundo plano.
  • -p 8080:80: Mapea el puerto 80 del contenedor (donde corre Nginx) al puerto 8080 de tu máquina.

Paso 4: Verificar que el contenedor esté corriendo

Podés revisar el estado de los contenedores activos con:

docker ps

Salida esperada:

  • Verás una fila con el ID del contenedor, la imagen nginx, el puerto 8080 y el estado Up.

Paso 5: Acceder al servidor desde el navegador

Abrí un navegador y escribí http://localhost:8080. Si todo está bien, verás la página de prueba de Nginx, que muestra un mensaje como Welcome to nginx!.

Salida esperada en el navegador:

  • Página con texto Welcome to nginx! y un enlace a http://nginx.org/.

Paso 6: Detener el contenedor (opcional)

Si querés detener el contenedor, usá:

docker stop a1b2c3d4e5f6

Salida esperada:

  • El contenedor se detendrá y ya no aparecerá en docker ps.

Buenas prácticas y errores comunes

Recomendaciones útiles

  1. Usar un puerto diferente: Si el puerto 8080 ya está en uso, cambia a otro (ej. -p 8000:80).
  2. Nomenclatura clara: Si levantás múltiples contenedores, asignáles nombres con docker run -d --name mi-nginx nginx.
  3. Persistencia de datos: Para guardar configuraciones o archivos, usá docker volume o montar un volumen con -v.
  4. Actualizar imágenes: Usá docker pull nginx periódicamente para obtener mejoras.

Errores comunes

  • Port conflict: Si otro servicio usa el puerto 8080, cambiá el mapeo de puertos.
  • Docker no corriendo: Verificá que el servicio Docker esté activo con systemctl status docker.
  • Permisos: Si tenés problemas con permisos, corré los comandos con sudo (en Linux).

Conclusión

Con estos pasos, tenés un servidor web con Nginx en Docker funcionando en minutos. La ventaja de este enfoque es que el entorno es aislado, portable y fácil de escalar. Para seguir aprendiendo, podés personalizar la configuración de Nginx o integrar aplicaciones web en el contenedor.

Próximos pasos

  • Aprender a configurar Nginx para servir aplicaciones personalizadas.
  • Explorar Docker Compose para levantar múltiples servicios en un solo comando.

¡Espero que este tutorial te sirva para empezar a jugar con Docker y Nginx! Si tenés dudas, dejá un comentario abajo.

Comentarios (0)

Sé el primero en comentar.

Dejá tu comentario