Cómo ejecutar un contenedor en Docker

ejecutar-contenedor-docker
ejecutar-contenedor-docker

En esta lección aprenderás a ejecutar un contenedor Docker con docker run: qué ocurre al iniciarlo, cómo comprobar su estado, limitar a localhost el acceso a un puerto publicado y retirarlo sin confundir el contenedor con la imagen o sus datos.

Usaremos Nginx para recorrer el ciclo completo: descargar la imagen si hace falta, crear y arrancar el contenedor, probar el servicio, revisar sus logs y limpiar el contenedor al terminar.

👉 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.

Qué significa ejecutar un contenedor

Problema: una imagen Docker por sí sola no está ejecutándose. Es una plantilla. Para que haga algo necesitas crear un contenedor a partir de ella.

Qué aporta Docker: docker run crea un contenedor nuevo a partir de una imagen y arranca su proceso principal. Si la imagen no está en el equipo, Docker intenta descargarla. Para reanudar un contenedor que ya existe y está detenido se usa docker start; docker ps -a permite localizarlo.

OpciónPara qué sirve
–nameAsigna un nombre único para identificarlo en comandos posteriores.
-dLo deja en segundo plano y devuelve el identificador.
-pPublica un puerto; sin una IP de host, puede quedar accesible desde otras máquinas.
-itMantiene la entrada interactiva y asigna una terminal, útil para una shell.
–rmElimina el contenedor al salir; también se pierde su capa writable.

Ejemplo práctico con Nginx

docker run -d --name web-demo -p 127.0.0.1:8080:80 nginx:stable-alpine
docker ps --filter "name=web-demo"
curl -I http://localhost:8080

Docker descarga la imagen si hace falta, crea web-demo y mapea el puerto TCP 80 del contenedor al 8080 de la dirección local del equipo. Al indicar 127.0.0.1, limitas el acceso a localhost y evitas publicar el ejemplo en todas las interfaces del host. En Docker Engine anterior a la versión 28.0.0, la documentación advierte una excepción para equipos del mismo segmento de red; comprueba la versión si esta exposición local es sensible. El filtro de docker ps confirma que sigue activo y curl comprueba la respuesta HTTP.

Ejecutar un contenedor en modo interactivo

docker run --rm -it ubuntu:24.04 bash
cat /etc/os-release
exit

Las opciones -i y -t mantienen la entrada abierta y crean una terminal. Al ejecutar exit termina el proceso principal y el contenedor se detiene; –rm lo elimina automáticamente. Los archivos guardados solo en la capa writable desaparecen al eliminarlo, por lo que los datos que deban persistir necesitan un volumen o bind mount.

Verificación y limpieza segura

docker ps
docker logs --tail 20 web-demo
docker stop web-demo
docker rm web-demo
  • docker ps: confirma que el contenedor está en ejecución; no muestra los contenedores detenidos.
  • docker logs: muestra la salida estándar y los errores que el proceso haya enviado a los logs.
  • docker stop: detiene el contenedor de forma ordenada.
  • docker rm: elimina el contenedor detenido; la imagen permanece disponible para crear otro.

Si el contenedor se detiene

Un contenedor permanece activo mientras siga activo su proceso principal. Si docker ps no lo muestra, consulta docker ps -a para comprobar si terminó o falló. Revisa después docker logs web-demo y el estado del contenedor con docker inspect: los logs ayudan a encontrar errores de configuración, dependencias ausentes o fallos al iniciar el servicio. Reiniciar a ciegas puede repetir el mismo fallo sin explicar su causa.

Errores comunes

  • Confundir imagen y contenedor: la imagen es la plantilla; el contenedor es la ejecución.
  • Confundir EXPOSE con una publicación: declarar el puerto en una imagen no crea el mapeo; docker run necesita -p para publicarlo.
  • No poner nombre: Docker genera uno aleatorio y luego cuesta practicar comandos.
  • Publicar todos los puertos en una prueba local: -p 8080:80 puede escuchar en las direcciones del host; si solo necesitas acceso local, limita el enlace a 127.0.0.1.
  • Usar -f para borrar sin pensar: fuerza la eliminación y puede cortar el proceso sin permitir un cierre limpio.

Antes de limpiar: docker run crea un contenedor nuevo y puede descargar una imagen o publicar puertos. Comprueba el nombre y el estado antes de eliminarlo; si necesitas conservar datos, guárdalos en un volumen o bind mount, no solo en la capa writable.

Lecciones relacionadas del curso

Documentación oficial y recursos

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 *