Cómo usar el comando docker checkpoint create para crear un checkpoint de un contenedor en ejecución

DockerDockerBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderás a utilizar el comando docker checkpoint create para guardar el estado de un contenedor en ejecución. Comenzaremos iniciando un contenedor simple de Ubuntu que servirá como objetivo para nuestras operaciones de checkpoint.

Después de configurar el contenedor, crearás un checkpoint para el contenedor en ejecución, capturando efectivamente su estado actual. Luego verificaremos que el checkpoint se haya creado correctamente. Finalmente, explorarás cómo crear un checkpoint y especificar un directorio personalizado para almacenar los datos del checkpoint. Esta experiencia práctica demostrará la aplicación real del checkpointing de contenedores Docker.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/ImageOperationsGroup(["Image Operations"]) docker/ContainerOperationsGroup -.-> docker/run("Run a Container") docker/ContainerOperationsGroup -.-> docker/ps("List Running Containers") docker/ContainerOperationsGroup -.-> docker/create("Create Container") docker/ImageOperationsGroup -.-> docker/pull("Pull Image from Repository") docker/ImageOperationsGroup -.-> docker/images("List Images") subgraph Lab Skills docker/run -.-> lab-555066{{"Cómo usar el comando docker checkpoint create para crear un checkpoint de un contenedor en ejecución"}} docker/ps -.-> lab-555066{{"Cómo usar el comando docker checkpoint create para crear un checkpoint de un contenedor en ejecución"}} docker/create -.-> lab-555066{{"Cómo usar el comando docker checkpoint create para crear un checkpoint de un contenedor en ejecución"}} docker/pull -.-> lab-555066{{"Cómo usar el comando docker checkpoint create para crear un checkpoint de un contenedor en ejecución"}} docker/images -.-> lab-555066{{"Cómo usar el comando docker checkpoint create para crear un checkpoint de un contenedor en ejecución"}} end

Iniciar un contenedor para checkpoint

En este paso, iniciaremos un contenedor simple de Docker que luego utilizaremos para crear un checkpoint. El checkpointing te permite guardar el estado de un contenedor en ejecución y restaurarlo posteriormente. Esto es útil para migrar contenedores, depurar o crear snapshots.

Primero, necesitamos descargar la imagen ubuntu de Docker Hub. Esta imagen es pequeña y adecuada para nuestra demostración. Abre tu terminal en el entorno de LabEx.

docker pull ubuntu

Deberías ver una salida que indica que la imagen se está descargando. Una vez completada la descarga, puedes verificar que la imagen está disponible localmente listando las imágenes.

docker images

Busca ubuntu en la lista de imágenes.

Ahora, iniciemos un contenedor basado en la imagen ubuntu. Ejecutaremos un comando simple dentro del contenedor que lo mantenga en ejecución, como sleep infinity. También le asignaremos un nombre al contenedor para facilitar su referencia posterior. Llamémoslo my-checkpoint-container.

docker run -d --name my-checkpoint-container ubuntu sleep infinity

La bandera -d ejecuta el contenedor en modo detached, lo que significa que se ejecuta en segundo plano. La bandera --name asigna un nombre al contenedor. ubuntu es la imagen que estamos utilizando, y sleep infinity es el comando que se ejecutará dentro del contenedor para mantenerlo activo.

Después de ejecutar el comando, Docker mostrará el ID completo del contenedor. Puedes verificar que el contenedor está en ejecución listando los contenedores activos.

docker ps

Deberías ver un contenedor llamado my-checkpoint-container en la lista con un estado Up. Esto confirma que nuestro contenedor está en ejecución y listo para ser checkpointeado en los siguientes pasos.

Crear un checkpoint para el contenedor en ejecución

En este paso, crearemos un checkpoint para el contenedor en ejecución que iniciamos en el paso anterior. Crear un checkpoint de un contenedor guarda su estado actual, incluyendo su memoria, procesos y cambios en el sistema de archivos, en disco. Esto te permite pausar un contenedor y reanudarlo más tarde desde el punto exacto en que se creó el checkpoint.

Para crear un checkpoint, utilizamos el comando docker checkpoint create. Este comando requiere el nombre del contenedor y un nombre para el checkpoint. Llamaremos a nuestro checkpoint my-first-checkpoint.

docker checkpoint create my-checkpoint-container my-first-checkpoint

Este comando tardará un momento en ejecutarse mientras Docker guarda el estado del contenedor. No verás mucha salida si el comando se ejecuta correctamente.

Después de crear el checkpoint, el contenedor my-checkpoint-container seguirá en ejecución. Crear un checkpoint no detiene el contenedor, simplemente crea una instantánea de su estado.

En el siguiente paso, verificaremos que el checkpoint se haya creado correctamente y esté disponible.

Verificar el checkpoint creado

En este paso, verificaremos que el checkpoint creado en el paso anterior existe y está asociado a nuestro contenedor. Docker proporciona un comando para listar los checkpoints de un contenedor específico.

Para listar los checkpoints del contenedor my-checkpoint-container, utiliza el comando docker checkpoint ls seguido del nombre del contenedor.

docker checkpoint ls my-checkpoint-container

Este comando mostrará una lista de checkpoints disponibles para el contenedor especificado. Deberías ver my-first-checkpoint en la salida. Esto confirma que el checkpoint se creó exitosamente y está listo para ser usado en caso de necesitar restaurar el estado del contenedor.

La capacidad de listar checkpoints es importante para gestionarlos, especialmente cuando tienes múltiples checkpoints para un mismo contenedor o checkpoints de diferentes contenedores.

En el siguiente paso, exploraremos cómo crear un checkpoint en un directorio diferente.

Crear un checkpoint en un directorio personalizado

En este paso, aprenderemos cómo crear un checkpoint en un directorio específico de nuestra elección. Por defecto, Docker almacena los checkpoints en una ubicación estándar dentro del directorio raíz de datos de Docker. Sin embargo, es posible que desees guardar checkpoints en una ubicación diferente, por ejemplo, en otro disco o en un almacenamiento compartido.

Para especificar un directorio personalizado para el checkpoint, utilizamos el flag --checkpoint-dir con el comando docker checkpoint create. Primero, creemos un nuevo directorio en nuestro directorio personal donde almacenaremos el checkpoint.

mkdir ~/project/my-checkpoints

Ahora podemos crear otro checkpoint para nuestro contenedor en ejecución my-checkpoint-container, pero esta vez especificaremos el directorio ~/project/my-checkpoints como ubicación del checkpoint. Llamaremos a este nuevo checkpoint my-second-checkpoint.

docker checkpoint create --checkpoint-dir ~/project/my-checkpoints my-checkpoint-container my-second-checkpoint

Este comando creará los datos del checkpoint dentro del directorio ~/project/my-checkpoints. Puedes verificar el contenido de este directorio para observar los archivos del checkpoint.

ls ~/project/my-checkpoints/my-second-checkpoint

Deberías ver varios archivos y directorios creados por el proceso de checkpoint.

Aunque especificamos un directorio personalizado, el checkpoint sigue asociado al contenedor. Puedes listar nuevamente los checkpoints del contenedor y verás tanto my-first-checkpoint como my-second-checkpoint en la lista.

docker checkpoint ls my-checkpoint-container

Esto demuestra que Docker realiza un seguimiento de los checkpoints independientemente de su ubicación de almacenamiento. Usar un directorio personalizado te brinda mayor flexibilidad para gestionar tus datos de checkpoint.

Resumen

En este laboratorio, aprendimos a utilizar el comando docker checkpoint create para guardar el estado de un contenedor en ejecución. Comenzamos iniciando un contenedor simple de ubuntu llamado my-checkpoint-container usando docker run -d --name my-checkpoint-container ubuntu sleep infinity, asegurando que se ejecutara en modo desatendido. Verificamos el estado del contenedor usando docker ps.

A continuación, procedimos a crear un checkpoint para el contenedor en ejecución. Este proceso implica usar el comando docker checkpoint create para capturar el estado actual del contenedor, incluyendo su memoria y procesos, permitiendo su posterior restauración. También exploramos cómo verificar la creación exitosa del checkpoint y cómo especificar un directorio personalizado para almacenar los datos del checkpoint.