Introducción
En este laboratorio, aprenderás a gestionar el estado de los contenedores de Docker, centrándote específicamente en pausarlos y reanudarlos. Comenzarás creando y ejecutando un contenedor simple.
Después de la creación, practicarás pausar el contenedor en ejecución y verificar su estado pausado. Finalmente, aprenderás cómo reanudar el contenedor y confirmar que ha retomado su ejecución. Esta experiencia práctica te proporcionará un entendimiento práctico del uso del comando docker container unpause.
Crear y ejecutar un contenedor
En este paso, aprenderás cómo crear y ejecutar un contenedor de Docker. Un contenedor es una unidad estándar de software que empaqueta código y todas sus dependencias para que la aplicación se ejecute de manera rápida y confiable en diferentes entornos de computación.
Primero, descarguemos una imagen simple de Docker Hub. Usaremos la imagen hello-world, que es una imagen muy pequeña utilizada para probar instalaciones de Docker.
docker pull hello-world
Deberías ver una salida que indica que la imagen se está descargando y extrayendo.
Using default tag: latest
latest: Pulling from library/hello-world
...
Status: Downloaded newer image for hello-world:latest
docker.io/library/hello-world:latest
Ahora que tenemos la imagen, podemos ejecutar un contenedor basado en ella. Cuando ejecutes un contenedor desde la imagen hello-world, Docker simplemente imprimirá un mensaje en tu terminal y luego saldrá.
docker run hello-world
Deberías ver una salida similar a esta, que confirma que tu instalación de Docker funciona correctamente:
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(If you already had the image locally, skipped the pull step.)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Este comando creó y ejecutó un contenedor a partir de la imagen hello-world. Dado que el trabajo del contenedor era solo imprimir un mensaje y salir, ya no se está ejecutando.
Pausar el contenedor en ejecución
En el paso anterior, ejecutamos un contenedor simple que finalizó inmediatamente. Para demostrar cómo pausar y reanudar, necesitamos un contenedor que permanezca en ejecución. Utilizaremos un contenedor simple de ubuntu y lo mantendremos ejecutándose en segundo plano.
Primero, descarguemos la imagen de ubuntu.
docker pull ubuntu
Deberías ver una salida que indica que la imagen se está descargando y extrayendo.
Using default tag: latest
latest: Pulling from library/ubuntu
...
Status: Downloaded newer image for ubuntu:latest
docker.io/library/ubuntu:latest
Ahora, ejecutemos un contenedor de ubuntu en modo desatendido (-d) para que se ejecute en segundo plano. También le asignaremos un nombre (my-ubuntu) para facilitar su referencia. Usaremos el comando tail -f /dev/null para mantener el contenedor ejecutándose indefinidamente.
docker run -d --name my-ubuntu ubuntu tail -f /dev/null
Este comando mostrará el ID del contenedor.
<container_id>
Puedes verificar que el contenedor está en ejecución usando el comando docker ps.
docker ps
Deberías ver una salida similar a esta, mostrando tu contenedor my-ubuntu con un estado Up (en ejecución).
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
<container_id> ubuntu "tail -f /dev/null" X seconds ago Up X seconds my-ubuntu
Ahora que tenemos un contenedor en ejecución, podemos pausarlo usando el comando docker pause seguido del nombre o ID del contenedor.
docker pause my-ubuntu
Si el comando es exitoso, no habrá salida. El contenedor ahora está pausado.
Verificar que el contenedor está en pausa
En el paso anterior, pausamos el contenedor my-ubuntu. Ahora, verifiquemos que el contenedor efectivamente se encuentra en estado pausado.
Podemos usar nuevamente el comando docker ps para verificar el estado de los contenedores en ejecución.
docker ps
Este comando solo mostrará los contenedores actualmente en ejecución. Como pausamos el contenedor my-ubuntu, no debería aparecer en la salida de docker ps.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
Para ver todos los contenedores, incluyendo aquellos que están detenidos, finalizados o pausados, podemos usar el flag -a con docker ps.
docker ps -a
Ahora deberías ver el contenedor my-ubuntu listado, y su estado debería indicar que está pausado. Busca la palabra Paused en la columna STATUS.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
<container_id> ubuntu "tail -f /dev/null" X minutes ago Up X minutes (Paused) my-ubuntu
El estado (Paused) confirma que el contenedor no se está ejecutando activamente, pero sigue en memoria, listo para ser reanudado.
Reanudar el contenedor
En el paso anterior, verificamos que el contenedor my-ubuntu estaba pausado. Ahora, vamos a reanudarlo y continuar su ejecución.
Para reanudar un contenedor, usamos el comando docker unpause seguido del nombre o ID del contenedor.
docker unpause my-ubuntu
Si el comando es exitoso, no habrá salida. El contenedor debería estar ejecutándose nuevamente desde donde fue pausado.
Verificar que el contenedor está en ejecución nuevamente
En el paso anterior, reanudamos el contenedor my-ubuntu. Ahora, verifiquemos que está activo y en ejecución nuevamente.
Podemos usar el comando docker ps para listar los contenedores actualmente en ejecución.
docker ps
Esta vez, el contenedor my-ubuntu debería aparecer en la salida, y su estado debería ser Up.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
<container_id> ubuntu "tail -f /dev/null" X minutes ago Up X seconds my-ubuntu
El estado Up indica que el contenedor está en ejecución y sus procesos están activos.
Para confirmar adicionalmente, también podemos usar docker ps -a y verificar el estado. Debería mostrar Up sin el indicador (Paused).
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
<container_id> ubuntu "tail -f /dev/null" X minutes ago Up X seconds my-ubuntu
Esto confirma que el contenedor se ha reanudado exitosamente desde su estado pausado.
Finalmente, limpiemos el contenedor que creamos. Primero debemos detenerlo y luego eliminarlo.
docker stop my-ubuntu
Este comando detendrá el contenedor. Deberías ver el nombre o ID del contenedor impreso.
my-ubuntu
Ahora, elimina el contenedor usando el comando docker rm.
docker rm my-ubuntu
Este comando eliminará el contenedor. Deberías ver el nombre o ID del contenedor impreso.
my-ubuntu
Resumen
En este laboratorio, aprendiste cómo crear y ejecutar un contenedor Docker al descargar la imagen hello-world y ejecutarla. Esto demostró el proceso básico de obtener una imagen y lanzar un contenedor a partir de ella. Luego aprendiste cómo pausar un contenedor en ejecución, suspendiendo efectivamente sus procesos, y verificar su estado pausado. Finalmente, practicaste reanudar el contenedor para continuar su ejecución y confirmaste que estaba funcionando nuevamente.



