Creando tu primer contenedor en Docker

crear-primer-contenedor
crear-primer-contenedor

En esta lección vas a practicar creando tu primer contenedor en Docker con un ejemplo pequeño, visible y fácil de limpiar. La idea es pasar de “Docker ya está instalado” a “sé lanzar un servicio real y comprobarlo desde mi máquina”.

Usaremos Nginx porque permite ver el resultado en el navegador o con curl sin preparar una aplicación propia. Al terminar entenderás qué imagen has usado, qué contenedor se ha creado, qué puerto has publicado y cómo dejar el laboratorio limpio.

👉 Y recuerda, si quieres aprender más de Linux, visita el curso de Linux gratis.

🐳 Si quieres aprender más de Docker, visita el curso de Docker gratis.

Antes de crear el contenedor

Este artículo pertenece a la parte inicial del curso. No vamos a entrar todavía en redes avanzadas, Dockerfile, Compose ni seguridad profunda: aquí toca dominar el primer ciclo básico de un contenedor.

  • Tener Docker instalado en tu equipo o laboratorio.
  • Poder ejecutar comandos Docker desde tu usuario o con sudo, según tu configuración.
  • Tener libre el puerto 8080 en tu máquina para publicar el servicio de prueba.
  • Haber verificado previamente que el daemon de Docker responde.

Si vienes de la instalación, repasa primero cómo verificar que Docker funciona y la configuración inicial recomendada de Docker antes de lanzar este ejemplo.

docker version
docker ps

El primer comando confirma que el cliente y el servidor Docker se comunican. El segundo muestra los contenedores visibles para tu usuario; si devuelve una tabla vacía, también es correcto: simplemente no tienes contenedores en ejecución todavía.

Creando tu primer contenedor con Nginx

El comando principal descarga la imagen oficial de Nginx si no existe en local, crea un contenedor nuevo, lo ejecuta en segundo plano y publica el puerto 80 interno en el puerto 8080 de tu equipo.

docker run -d --name web-demo -p 8080:80 nginx:stable-alpine
ParteQué hace
docker runCrea y arranca un contenedor desde una imagen.
-dEjecuta el contenedor en segundo plano para recuperar la terminal.
–name web-demoAsigna un nombre legible para gestionarlo después.
-p 8080:80Conecta el puerto 8080 del host con el puerto 80 del contenedor.
nginx:stable-alpineUsa una imagen oficial ligera de Nginx con etiqueta estable.

Aquí no usamos latest para que el ejemplo sea más predecible. En un laboratorio básico no es crítico, pero acostumbrarte a usar etiquetas concretas te prepara para trabajar mejor con imágenes Docker más adelante.

Cuando estés creando tu primer contenedor, quédate con esta idea: no estás instalando Nginx directamente en tu sistema, sino ejecutando un proceso aislado a partir de una imagen.

Comprueba que el contenedor responde

Ahora verifica el contenedor desde tres ángulos: que Docker lo ve como activo, que sus logs no muestran un error inmediato y que el servicio HTTP responde desde el host.

docker ps
docker logs web-demo
curl -I http://localhost:8080

Con docker ps deberías ver el contenedor web-demo en ejecución. Con docker logs puedes comprobar que Nginx arrancó. Con curl revisas la parte más importante para el usuario: el puerto publicado responde desde tu máquina.

Si estás en un entorno sin curl, abre http://localhost:8080 en el navegador. Lo importante no es la herramienta concreta, sino confirmar que el servicio dentro del contenedor es accesible desde fuera.

Qué puedes tocar sin complicarte

Una vez que el contenedor está funcionando, puedes practicar dos acciones seguras: listar todos los contenedores y entrar al contenedor para observar su sistema de archivos. No conviertas esta primera práctica en una sesión avanzada de depuración; para eso habrá lecciones específicas.

Ver contenedores activos y detenidos

docker ps
docker ps -a

La diferencia es sencilla: docker ps enseña solo lo que está en ejecución, mientras que docker ps -a también muestra contenedores detenidos. Esto te ayuda a entender que un contenedor puede existir aunque ya no esté corriendo.

Entrar de forma puntual

docker exec -it web-demo sh

Dentro del contenedor puedes mirar archivos y procesos, pero evita cambiar configuraciones a mano como práctica habitual. En Docker, lo normal es declarar cambios en imágenes, volúmenes o Compose, no “arreglar” contenedores manualmente como si fueran servidores tradicionales.

Errores comunes al crear el primer contenedor

  • El puerto 8080 ya está ocupado: usa otro puerto del host, por ejemplo 8081:80, o detén el proceso que ya lo utiliza.
  • Permission denied al ejecutar Docker: revisa la lección Docker Permission Denied antes de seguir.
  • No responde localhost:8080: confirma con docker ps que el contenedor sigue activo y revisa los logs.
  • Confundir EXPOSE con publicar puertos: EXPOSE documenta puertos en una imagen, pero para acceder desde el host necesitas publicar el puerto con -p.
  • Crear muchos contenedores de prueba: usa nombres claros y limpia el laboratorio cuando termines.

Si el problema va más allá de permisos, puertos o contenedor detenido, no lo metas todo en esta lección. Para daemon JSON, logs del servicio, proxy, socket o rollback, continúa con configuración inicial avanzada de Docker; para el día a día tendrás artículos concretos sobre logs, inspección, redes e imágenes.

Limpieza del laboratorio

Para cerrar la práctica, detén y elimina solo el contenedor de prueba que has creado en esta lección. No uses comandos masivos de limpieza si todavía estás aprendiendo o si compartes el equipo con otros proyectos.

docker stop web-demo
docker rm web-demo

Advertencia: estos comandos eliminan el contenedor llamado web-demo. No borran imágenes ni volúmenes nombrados, pero sí pierdes el estado interno de ese contenedor. En este laboratorio no hay datos importantes, así que es seguro.

Después puedes comprobar que ya no queda en ejecución:

docker ps
docker ps -a

Lecciones relacionadas del curso Docker

Para seguir el recorrido sin saltarte bases importantes, continúa con estas lecciones del curso:

Documentación oficial y recursos

Creando tu primer contenedor aprendes el ciclo mínimo que vas a repetir muchas veces: elegir una imagen, arrancar el contenedor, comprobarlo, revisar señales básicas y limpiar el laboratorio.

A partir de aquí ya puedes avanzar hacia imágenes, logs, ejecución interactiva y Docker Compose con una base práctica: sabes lanzar un servicio real y sabes verificar si funciona.

Comentarios

No hay comentarios aún. ¿Por qué no comienzas el debate?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *