Comment utiliser la commande docker checkpoint create pour créer un checkpoint d'un conteneur en cours d'exécution

DockerDockerBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce lab, vous apprendrez à utiliser la commande docker checkpoint create pour sauvegarder l'état d'un conteneur en cours d'exécution. Nous commencerons par démarrer un simple conteneur Ubuntu qui servira de cible pour nos opérations de checkpoint.

Après la configuration du conteneur, vous créerez un checkpoint pour le conteneur en cours d'exécution, capturant ainsi son état actuel. Nous vérifierons ensuite que le checkpoint a bien été créé. Enfin, vous explorerez comment créer un checkpoint et spécifier un répertoire personnalisé pour stocker les données du checkpoint. Cette expérience pratique démontrera l'application concrète du checkpointing de conteneurs 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{{"Comment utiliser la commande docker checkpoint create pour créer un checkpoint d'un conteneur en cours d'exécution"}} docker/ps -.-> lab-555066{{"Comment utiliser la commande docker checkpoint create pour créer un checkpoint d'un conteneur en cours d'exécution"}} docker/create -.-> lab-555066{{"Comment utiliser la commande docker checkpoint create pour créer un checkpoint d'un conteneur en cours d'exécution"}} docker/pull -.-> lab-555066{{"Comment utiliser la commande docker checkpoint create pour créer un checkpoint d'un conteneur en cours d'exécution"}} docker/images -.-> lab-555066{{"Comment utiliser la commande docker checkpoint create pour créer un checkpoint d'un conteneur en cours d'exécution"}} end

Démarrer un conteneur à checkpointer

Dans cette étape, nous allons démarrer un simple conteneur Docker que nous checkpointons ultérieurement. Le checkpointing permet de sauvegarder l'état d'un conteneur en cours d'exécution et de le restaurer plus tard. Cette fonctionnalité est utile pour migrer des conteneurs, déboguer ou créer des instantanés.

Tout d'abord, nous devons récupérer l'image ubuntu depuis Docker Hub. Cette image est légère et adaptée à notre démonstration. Ouvrez votre terminal dans l'environnement LabEx.

docker pull ubuntu

Vous devriez voir une sortie indiquant que l'image est en cours de téléchargement. Une fois le téléchargement terminé, vous pouvez vérifier que l'image est disponible localement en listant les images.

docker images

Recherchez ubuntu dans la liste des images.

Maintenant, démarrons un conteneur basé sur l'image ubuntu. Nous exécuterons une commande simple à l'intérieur du conteneur pour le maintenir en fonctionnement, comme sleep infinity. Nous donnerons également un nom au conteneur pour faciliter sa référence ultérieure. Appelons-le my-checkpoint-container.

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

Le flag -d exécute le conteneur en mode détaché, c'est-à-dire en arrière-plan. Le flag --name attribue un nom au conteneur. ubuntu est l'image utilisée, et sleep infinity est la commande qui maintiendra le conteneur actif.

Après l'exécution de la commande, Docker affichera l'ID complet du conteneur. Vous pouvez vérifier que le conteneur est en cours d'exécution en listant les conteneurs actifs.

docker ps

Vous devriez voir un conteneur nommé my-checkpoint-container dans la liste avec un statut Up. Cela confirme que notre conteneur est en cours d'exécution et prêt à être checkpointé dans les étapes suivantes.

Créer un checkpoint pour le conteneur en cours d'exécution

Dans cette étape, nous allons créer un checkpoint pour le conteneur démarré précédemment. Le checkpointing d'un conteneur sauvegarde son état actuel (mémoire, processus et modifications du système de fichiers) sur le disque. Cela permet de mettre en pause un conteneur et de le reprendre ultérieurement exactement à l'état où il a été checkpointé.

Pour créer un checkpoint, nous utilisons la commande docker checkpoint create. Cette commande nécessite le nom du conteneur et un nom pour le checkpoint. Nommons notre checkpoint my-first-checkpoint.

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

Cette commande prendra un certain temps à s'exécuter pendant que Docker sauvegarde l'état du conteneur. Si la commande réussit, vous ne verrez que peu de sortie.

Après la création du checkpoint, le conteneur my-checkpoint-container continuera à fonctionner. Le checkpointing n'arrête pas le conteneur - il crée simplement un instantané de son état.

Dans l'étape suivante, nous vérifierons que le checkpoint a bien été créé et est disponible.

Vérifier le checkpoint créé

Dans cette étape, nous allons vérifier que le checkpoint créé précédemment existe bien et est associé à notre conteneur. Docker fournit une commande pour lister les checkpoints d'un conteneur spécifique.

Pour lister les checkpoints du conteneur my-checkpoint-container, utilisez la commande docker checkpoint ls suivie du nom du conteneur.

docker checkpoint ls my-checkpoint-container

Cette commande affichera la liste des checkpoints disponibles pour le conteneur spécifié. Vous devriez voir my-first-checkpoint apparaître dans le résultat. Cela confirme que le checkpoint a bien été créé et est prêt à être utilisé pour restaurer l'état du conteneur si nécessaire.

La possibilité de lister les checkpoints est importante pour leur gestion, particulièrement lorsque vous avez plusieurs checkpoints pour un même conteneur ou des checkpoints pour différents conteneurs.

Dans l'étape suivante, nous explorerons la création d'un checkpoint dans un répertoire différent.

Créer un checkpoint dans un répertoire personnalisé

Dans cette étape, nous allons apprendre à créer un checkpoint dans un répertoire spécifique de notre choix. Par défaut, Docker stocke les checkpoints dans un emplacement standard du répertoire racine des données Docker. Cependant, vous pourriez souhaiter stocker les checkpoints à un autre emplacement, par exemple sur un disque différent ou un stockage partagé.

Pour spécifier un répertoire personnalisé pour le checkpoint, nous utilisons l'option --checkpoint-dir avec la commande docker checkpoint create. Commençons par créer un nouveau répertoire dans notre dossier personnel pour stocker le checkpoint.

mkdir ~/project/my-checkpoints

Maintenant, nous pouvons créer un autre checkpoint pour notre conteneur en cours d'exécution my-checkpoint-container, mais cette fois en spécifiant le répertoire ~/project/my-checkpoints comme emplacement de stockage. Nommons ce nouveau checkpoint my-second-checkpoint.

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

Cette commande créera les données du checkpoint dans le répertoire ~/project/my-checkpoints. Vous pouvez vérifier le contenu de ce répertoire pour voir les fichiers du checkpoint.

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

Vous devriez voir plusieurs fichiers et répertoires créés par le processus de checkpointing.

Bien que nous ayons spécifié un répertoire personnalisé, le checkpoint reste associé au conteneur. Vous pouvez à nouveau lister les checkpoints du conteneur, et vous verrez à la fois my-first-checkpoint et my-second-checkpoint dans la liste.

docker checkpoint ls my-checkpoint-container

Cela montre que Docker garde une trace des checkpoints indépendamment de leur emplacement de stockage. L'utilisation d'un répertoire personnalisé vous offre plus de flexibilité dans la gestion de vos données de checkpoint.

Résumé

Dans ce lab, nous avons appris à utiliser la commande docker checkpoint create pour sauvegarder l'état d'un conteneur en cours d'exécution. Nous avons commencé par démarrer un simple conteneur ubuntu nommé my-checkpoint-container en utilisant docker run -d --name my-checkpoint-container ubuntu sleep infinity, en nous assurant qu'il s'exécutait en mode détaché. Nous avons vérifié l'état du conteneur avec docker ps.

Ensuite, nous avons procédé à la création d'un checkpoint pour le conteneur en cours d'exécution. Ce processus implique l'utilisation de la commande docker checkpoint create pour capturer l'état actuel du conteneur, y compris sa mémoire et ses processus, permettant ainsi une restauration ultérieure. Nous avons également exploré comment vérifier la création réussie du checkpoint et comment spécifier un répertoire personnalisé pour stocker les données du checkpoint.