MINI TUTORIAL DOCKER – DÍA 2

Imágenes y contenedores en la práctica: run, ps, stop, rm, logs, exec


1. Objetivo del día

Hoy no vas a aprender nada “nuevo raro”.
Solo vas a dominar bien lo básico:

  • arrancar contenedores con docker run
  • ver qué contenedores están en marcha (docker ps)
  • parar, arrancar y borrar contenedores
  • ver los logs de un contenedor
  • entrar en un contenedor que está corriendo (docker exec -it)

Al final del día tendrás control total del ciclo de vida básico de un contenedor.


2. Recordatorio rápido: imagen vs contenedor

Muy resumido:

  • Imagen → plantilla (solo lectura), por ejemplo alpine, nginx
  • Contenedor → instancia en ejecución de esa imagen

Comando clave:

docker run IMAGEN [COMANDO]
  • Si no pones COMANDO, usa el que trae la imagen por defecto
  • Si pones COMANDO, se usa ese en su lugar

Ejemplo:

docker run alpine echo "Hola"
  • Usa la imagen alpine
  • Ejecuta el comando echo "Hola" dentro del contenedor
  • Cuando termina echo, el contenedor finaliza

3. Ver contenedores: docker ps y docker ps -a

Contenedores en ejecución:

docker ps

Columnas importantes:

  • CONTAINER ID → identificador corto
  • IMAGE → qué imagen usa
  • STATUS → en marcha, detenido, etc.
  • NAMES → nombre del contenedor (muy importante)

Todos los contenedores (incluidos los detenidos):

docker ps -a

Ahí verás contenedores de tipo:

  • Exited (0) → contenedor que ya terminó
  • Up X seconds → contenedor en marcha

4. Ejecutar contenedores: corto vs largo

4.1. Contenedor “de un solo uso”

Ejemplo (similar a lo que vimos en el Día 1):

docker run --rm alpine echo "Hola desde Alpine"

¿Qué hace?

  • descarga la imagen alpine si no la tienes
  • crea un contenedor temporal
  • ejecuta echo "Hola desde Alpine"
  • muestra el resultado
  • gracias a --rm, borra el contenedor al terminar

No queda nada colgando en docker ps -a.


4.2. Contenedor que se quede corriendo

Necesitamos un contenedor que no termine enseguida, para poder luego entrar dentro.

Ejemplo:

docker run -d --name alpine-sleep alpine sleep 3600
  • -d → detached (en segundo plano)
  • --name alpine-sleep → nombre del contenedor
  • alpine → imagen
  • sleep 3600 → se queda “durmiendo” 3600 segundos (1 hora)

Comprueba:

docker ps

Deberías ver algo como:

CONTAINER ID   IMAGE   COMMAND        STATUS         NAMES
xxxxx          alpine  "sleep 3600"   Up ...         alpine-sleep

5. Parar, arrancar y borrar contenedores

5.1. Parar un contenedor

docker stop alpine-sleep

Ahora:

docker ps

Ya no aparece.
Pero sí lo verás en:

docker ps -a

con estado Exited.


5.2. Volver a arrancarlo

docker start alpine-sleep
docker ps

Vuelve a estar en marcha.


5.3. Borrarlo

Un contenedor debe estar parado para borrarlo:

docker stop alpine-sleep
docker rm alpine-sleep

Ahora ya no aparece ni en docker ps ni en docker ps -a.

👉 Resumen mental:

  • stop → lo para
  • start → lo arranca de nuevo
  • rm → lo borra

6. Ver los logs de un contenedor: docker logs

Los contenedores imprimen cosas por su salida estándar, igual que un programa normal.

Ejemplo simple:

docker run --name hola-logs alpine echo "Hola desde los logs"

El contenedor termina, pero queda registrado.

Ver logs:

docker logs hola-logs

Verás:

Hola desde los logs

Esto es muy útil para:

  • ver errores de aplicaciones
  • revisar qué ha pasado en un contenedor que ya terminó

7. Entrar dentro de un contenedor en marcha: docker exec -it

Para “entrar” dentro de un contenedor que siga corriendo:

  1. Primero creamos uno que dure un rato:
docker run -d --name alpine-demo alpine sleep 3600
  1. Ahora entramos dentro con una shell:
docker exec -it alpine-demo sh
  • exec → ejecuta un comando dentro de un contenedor ya en marcha
  • -it → modo interactivo + terminal
  • sh → shell de Alpine

Dentro puedes hacer:

ls
pwd
uname -a
cat /etc/os-release
exit

Al hacer exit, sales del contenedor, pero el contenedor sigue en ejecución (sigue haciendo sleep 3600).

Puedes comprobarlo:

docker ps

Cuando quieras, lo paras y lo borras:

docker stop alpine-demo
docker rm alpine-demo

8. Práctica guiada del Día 2 (30–40 min)

Haz estos pasos en orden:

1️⃣ Ver contenedores:

docker ps
docker ps -a

2️⃣ Crear y ejecutar un contenedor corto:

docker run --rm alpine echo "Hola desde un contenedor efímero"

3️⃣ Crear un contenedor de larga duración:

docker run -d --name alpine-sleep alpine sleep 3600

4️⃣ Ver que está corriendo:

docker ps

5️⃣ Entrar dentro con exec:

docker exec -it alpine-sleep sh
  • Dentro: ejecuta ls, pwd, uname -a, exit

6️⃣ Parar y arrancar de nuevo:

docker stop alpine-sleep
docker start alpine-sleep
docker ps

7️⃣ Ver logs de un contenedor:

docker run --name hola-logs alpine echo "Hola desde los logs"
docker logs hola-logs

8️⃣ Limpiar contenedores de prueba:

docker stop alpine-sleep
docker rm alpine-sleep
docker rm hola-logs

9. Checklist del Día 2

  • Sé ver contenedores en ejecución (docker ps)
  • Sé ver contenedores terminados (docker ps -a)
  • Entiendo la diferencia entre contenedor corto y largo
  • Sé usar docker run --rm para contenedores efímeros
  • Sé crear contenedores con nombre (--name)
  • Sé parar, arrancar y borrar contenedores (stop, start, rm)
  • Sé ver los logs de un contenedor (docker logs)
  • Sé entrar en un contenedor en marcha con docker exec -it

Si está todo marcado → Día 2 de Docker completado


Día 3 – Publicar puertos y levantar tu primer Nginx en un contenedor (-p host:contenedor)

[Índice Minti Tutorial Docker 7 días]

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

ACEPTAR
Aviso de cookies