Comment utiliser la commande docker container export pour exporter le système de fichiers d'un conteneur

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 container export pour exporter le système de fichiers d'un conteneur Docker. Nous commencerons par créer et exécuter un conteneur simple.

Après la création du conteneur, vous explorerez différentes méthodes pour exporter son système de fichiers. Cela inclut l'exportation directe du système de fichiers vers la sortie standard (STDOUT), son exportation vers un fichier en utilisant la redirection shell, et enfin, son exportation vers un fichier en utilisant l'option --output de la commande docker container export.


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/ls("List Containers") docker/ContainerOperationsGroup -.-> docker/ps("List Running Containers") docker/ImageOperationsGroup -.-> docker/save("Save Image") subgraph Lab Skills docker/run -.-> lab-555109{{"Comment utiliser la commande docker container export pour exporter le système de fichiers d'un conteneur"}} docker/ls -.-> lab-555109{{"Comment utiliser la commande docker container export pour exporter le système de fichiers d'un conteneur"}} docker/ps -.-> lab-555109{{"Comment utiliser la commande docker container export pour exporter le système de fichiers d'un conteneur"}} docker/save -.-> lab-555109{{"Comment utiliser la commande docker container export pour exporter le système de fichiers d'un conteneur"}} end

Créer et exécuter un conteneur simple

Dans cette étape, nous allons apprendre à créer et exécuter un conteneur Docker simple. Un conteneur est une unité logicielle standard qui empaquette du code et toutes ses dépendances afin que l'application s'exécute rapidement et de manière fiable d'un environnement informatique à un autre.

Nous utiliserons la commande docker run pour créer et exécuter un conteneur. La syntaxe de base est docker run [OPTIONS] IMAGE [COMMAND] [ARG...].

Exécutons un conteneur simple en utilisant l'image ubuntu et la commande echo. L'image ubuntu est une image minimale du système d'exploitation Ubuntu.

docker run ubuntu echo "Hello from Docker!"

Lorsque vous exécutez cette commande pour la première fois, Docker vérifiera d'abord si l'image ubuntu existe localement. Si ce n'est pas le cas, il la téléchargera depuis Docker Hub (le registre par défaut). Ensuite, il créera un nouveau conteneur à partir de cette image et exécutera la commande echo "Hello from Docker!" à l'intérieur du conteneur. Une fois la commande terminée, le conteneur s'arrêtera.

Vous devriez voir la sortie Hello from Docker! dans votre terminal.

Maintenant, essayons d'exécuter un conteneur qui reste actif. Nous pouvons utiliser l'option -d pour exécuter le conteneur en mode détaché (en arrière-plan) et la commande tail -f /dev/null pour maintenir le conteneur en fonctionnement sans consommer de ressources significatives. Nous donnerons également un nom au conteneur en utilisant l'option --name pour pouvoir facilement le référencer plus tard.

docker run -d --name my-ubuntu-container ubuntu tail -f /dev/null

Cette commande téléchargera l'image ubuntu (si elle n'est pas déjà présente), créera un conteneur nommé my-ubuntu-container et exécutera la commande tail -f /dev/null en mode détaché. La commande affichera l'ID du conteneur.

Pour vérifier que le conteneur est en cours d'exécution, vous pouvez utiliser la commande docker ps, qui liste les conteneurs actifs.

docker ps

Vous devriez voir une liste des conteneurs en cours d'exécution, y compris my-ubuntu-container.

Exporter le système de fichiers du conteneur vers STDOUT

Dans cette étape, nous allons apprendre à exporter le système de fichiers d'un conteneur Docker. L'exportation du système de fichiers d'un conteneur crée une archive tar de son contenu. Cela peut être utile pour créer des sauvegardes, partager des états de conteneurs ou inspecter le contenu d'un conteneur.

Nous utiliserons la commande docker export pour exporter le système de fichiers. La syntaxe de base est docker export [OPTIONS] CONTAINER.

Exportons le système de fichiers du conteneur my-ubuntu-container que nous avons créé à l'étape précédente. Par défaut, docker export envoie l'archive tar vers la sortie standard (STDOUT).

docker export my-ubuntu-container

Lorsque vous exécutez cette commande, vous verrez un flux de données binaires dans votre terminal. Il s'agit de l'archive tar du système de fichiers du conteneur. Comme ce sont des données binaires, elles ne seront pas lisibles directement dans le terminal.

Pour mieux comprendre ce qui est exporté, nous pourrions rediriger la sortie vers une commande capable de traiter les archives tar, comme tar. Cependant, pour cette étape, nous nous concentrons uniquement sur l'exportation vers STDOUT.

La commande docker export exporte l'intégralité du système de fichiers du conteneur, y compris toutes les modifications apportées depuis sa création.

Exporter le système de fichiers du conteneur vers un fichier en utilisant la redirection

Dans l'étape précédente, nous avons exporté le système de fichiers du conteneur vers STDOUT. Bien que cela soit utile pour rediriger la sortie vers d'autres commandes, il est souvent plus pratique de sauvegarder le système de fichiers exporté dans un fichier.

Nous pouvons y parvenir en utilisant la redirection shell. L'opérateur > redirige la sortie standard d'une commande vers un fichier.

Exportons le système de fichiers du conteneur my-ubuntu-container vers un fichier nommé ubuntu-filesystem.tar dans votre répertoire courant (~/project).

docker export my-ubuntu-container > ubuntu-filesystem.tar

Cette commande exécutera docker export my-ubuntu-container et redirigera la sortie binaire (l'archive tar) vers le fichier ubuntu-filesystem.tar. Vous ne verrez pas les données binaires dans votre terminal cette fois-ci.

Une fois la commande terminée, vous pouvez vérifier que le fichier a été créé et contrôler sa taille avec la commande ls -lh.

ls -lh ubuntu-filesystem.tar

Vous devriez voir le fichier ubuntu-filesystem.tar listé avec sa taille. La taille dépendra du contenu de l'image ubuntu.

Vous pouvez également utiliser la commande file pour confirmer que le fichier créé est bien une archive tar.

file ubuntu-filesystem.tar

La sortie devrait indiquer que le fichier est une archive tar, par exemple : ubuntu-filesystem.tar: POSIX tar archive.

Exporter le système de fichiers du conteneur vers un fichier avec l'option --output

Dans l'étape précédente, nous avons utilisé la redirection shell (>) pour sauvegarder le système de fichiers exporté dans un fichier. Docker propose également une option dédiée, --output ou -o, permettant de spécifier directement le fichier de sortie avec la commande docker export. Cette approche peut parfois s'avérer plus pratique que l'utilisation de la redirection shell.

Exportons à nouveau le système de fichiers du conteneur my-ubuntu-container, cette fois en utilisant l'option --output, et sauvegardons-le dans un fichier nommé ubuntu-filesystem-output.tar dans votre répertoire courant (~/project).

docker export --output ubuntu-filesystem-output.tar my-ubuntu-container

Cette commande est équivalente à l'utilisation de la redirection, mais elle emploie une option spécifique à Docker. L'archive tar sera sauvegardée directement dans le fichier spécifié.

Une fois la commande exécutée, vous pouvez vérifier la création et la taille du nouveau fichier avec ls -lh.

ls -lh ubuntu-filesystem-output.tar

Vous devriez voir le fichier ubuntu-filesystem-output.tar listé. Sa taille devrait être similaire à celle du fichier ubuntu-filesystem.tar créé lors de l'étape précédente.

Vous pouvez également utiliser la commande file pour confirmer que ubuntu-filesystem-output.tar est bien une archive tar.

file ubuntu-filesystem-output.tar

Le résultat devrait confirmer qu'il s'agit bien d'une archive tar.

L'utilisation de l'option --output constitue une méthode élégante pour spécifier le fichier de destination pour l'exportation du système de fichiers.

Résumé

Dans ce lab, nous avons appris à créer et exécuter des conteneurs Docker simples. Nous avons utilisé la commande docker run pour exécuter des commandes dans un conteneur et pour lancer des conteneurs en mode détaché avec un nom spécifique. Nous avons également utilisé la commande docker ps pour vérifier qu'un conteneur est en cours d'exécution.

Nous avons ensuite exploré comment exporter le système de fichiers d'un conteneur en utilisant la commande docker export. Nous avons appris à exporter le système de fichiers vers la sortie standard (STDOUT) et comment rediriger cette sortie vers un fichier. Enfin, nous avons vu comment utiliser l'option --output avec docker export pour spécifier directement le fichier de sortie.