Comment utiliser la commande docker image import pour créer des images

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 image import pour créer des images Docker à partir de diverses sources. Vous explorerez l'importation directe d'images depuis une URL distante, l'importation depuis une archive tarball locale en utilisant l'entrée standard, l'importation depuis une archive tarball locale avec un message de commit, et l'importation depuis un répertoire local avec de nouvelles configurations.

À travers des exercices pratiques, vous acquerrez une expérience concrète dans l'utilisation des différentes options de la commande docker image import et comprendrez comment vérifier les images importées. Ce lab vous dotera des compétences nécessaires pour créer efficacement des images Docker à partir d'archives tarball ou de répertoires existants, offrant ainsi une flexibilité dans votre flux de travail 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/ls("List Containers") docker/ImageOperationsGroup -.-> docker/images("List Images") docker/ImageOperationsGroup -.-> docker/load("Load Image") subgraph Lab Skills docker/run -.-> lab-555154{{"Comment utiliser la commande docker image import pour créer des images"}} docker/ls -.-> lab-555154{{"Comment utiliser la commande docker image import pour créer des images"}} docker/images -.-> lab-555154{{"Comment utiliser la commande docker image import pour créer des images"}} docker/load -.-> lab-555154{{"Comment utiliser la commande docker image import pour créer des images"}} end

Importer une image depuis une URL distante

Dans cette étape, vous apprendrez comment importer une image Docker directement depuis une URL distante. Cette méthode est utile lorsque vous avez une archive tarball d'image hébergée sur un serveur web et que vous souhaitez la charger dans votre environnement Docker sans avoir à la télécharger manuellement au préalable.

Commencez par utiliser la commande curl pour télécharger un exemple d'archive tarball d'image depuis une URL distante. Nous utiliserons une archive d'image publiquement disponible à des fins de démonstration.

curl -o ~/project/alpine.tar https://labex.io/images/alpine.tar

Cette commande télécharge l'archive tarball depuis l'URL spécifiée et l'enregistre sous le nom alpine.tar dans votre répertoire ~/project. L'option -o permet de spécifier le nom et l'emplacement du fichier de sortie.

Ensuite, nous utiliserons la commande docker image import pour importer cette archive dans votre environnement Docker. La commande import peut prendre une URL ou un chemin de fichier en entrée. Lorsqu'une URL est utilisée, Docker télécharge directement le contenu et l'importe.

docker image import https://labex.io/images/alpine.tar

Cette commande importe l'image depuis l'URL distante. Docker téléchargera l'archive tarball et créera une nouvelle image à partir de son contenu. Par défaut, l'image importée n'aura ni dépôt (repository) ni étiquette (tag).

Pour vérifier que l'image a bien été importée, vous pouvez lister les images disponibles à l'aide de la commande docker images.

docker images

Vous devriez voir une image avec <none> pour REPOSITORY et TAG, et une date de CREATED récente. Il s'agit de l'image que vous venez d'importer.

Vous pouvez également importer l'image et lui attribuer un dépôt et une étiquette pendant le processus d'importation. Pour ce faire, ajoutez le dépôt et l'étiquette souhaités après l'URL.

docker image import https://labex.io/images/alpine.tar alpine:latest

Cette commande importe la même image mais lui attribue l'étiquette alpine:latest.

Maintenant, listez à nouveau les images pour voir la nouvelle image étiquetée.

docker images

Vous devriez maintenant voir une image avec le dépôt alpine et l'étiquette latest.

Importer une image depuis une archive tarball locale via STDIN

Dans l'étape précédente, vous avez appris à importer une image Docker depuis une URL distante. Dans cette étape, vous apprendrez comment importer une image Docker depuis un fichier tarball local en utilisant l'entrée standard (STDIN). Cette méthode est utile lorsque vous possédez une archive tarball locale et souhaitez envoyer son contenu directement à la commande docker image import.

Tout d'abord, assurez-vous d'avoir le fichier alpine.tar dans votre répertoire ~/project depuis l'étape précédente. Si ce n'est pas le cas, vous pouvez le télécharger à nouveau avec curl :

curl -o ~/project/alpine.tar https://labex.io/images/alpine.tar

Nous allons maintenant utiliser la commande cat pour lire le contenu du fichier alpine.tar et le rediriger vers la commande docker image import. L'argument - pour docker image import indique de lire depuis STDIN.

cat ~/project/alpine.tar | docker image import -

Cette commande lit le fichier alpine.tar et envoie son contenu comme entrée à la commande docker image import. Docker importe ensuite l'image à partir des données reçues. Comme pour l'import depuis une URL sans spécifier d'étiquette, l'image importée n'aura par défaut ni dépôt ni étiquette.

Pour vérifier que l'image a bien été importée, listez les images disponibles :

docker images

Vous devriez voir une autre image avec <none> pour REPOSITORY et TAG.

Vous pouvez également spécifier un dépôt et une étiquette lors de l'import depuis STDIN. La syntaxe est similaire à l'import depuis une URL.

cat ~/project/alpine.tar | docker image import - alpine:stdin

Cette commande importe l'image depuis STDIN et lui attribue l'étiquette alpine:stdin.

Listez à nouveau les images pour confirmer la nouvelle étiquette :

docker images

Vous devriez maintenant voir une image avec le dépôt alpine et l'étiquette stdin.

L'utilisation de STDIN est une méthode flexible pour importer des images, particulièrement utile lorsque vous enchaînez des commandes ou travaillez avec des archives compressées que vous pourriez décompresser et importer en une seule opération.

Importer une image depuis une archive tarball locale avec un message de commit

Dans les étapes précédentes, vous avez importé des images depuis une URL et via STDIN. Dans cette étape, vous apprendrez comment importer une image depuis un fichier tarball local et ajouter un message de commit lors du processus d'importation. L'ajout d'un message de commit vous permet de documenter l'origine ou l'objectif de l'image importée.

Tout d'abord, assurez-vous d'avoir le fichier alpine.tar dans votre répertoire ~/project. Si ce n'est pas le cas, téléchargez-le :

curl -o ~/project/alpine.tar https://labex.io/images/alpine.tar

Nous allons maintenant utiliser la commande docker image import avec l'option -m pour ajouter un message de commit. Nous spécifierons également le chemin local du fichier comme source.

docker image import -m "Image alpine de base importée" ~/project/alpine.tar alpine:commit

Dans cette commande :

  • -m "Image alpine de base importée" ajoute le message de commit spécifié à l'historique de l'image
  • ~/project/alpine.tar est le chemin vers le fichier tarball local
  • alpine:commit est le dépôt et l'étiquette souhaités pour l'image importée

Après exécution de cette commande, Docker importera l'image depuis l'archive tarball locale et appliquera le message de commit.

Pour vérifier l'importation et le message de commit, vous pouvez inspecter l'image avec la commande docker image history.

docker image history alpine:commit

Cette commande affiche l'historique de l'image alpine:commit. Vous devriez voir une entrée avec le message "Image alpine de base importée" dans la colonne COMMENT.

Vous pouvez également lister les images pour confirmer la nouvelle étiquette :

docker images

Vous devriez voir une image avec le dépôt alpine et l'étiquette commit.

L'ajout de messages de commit est une bonne pratique pour suivre les modifications et l'origine de vos images Docker, particulièrement lors d'importations depuis des sources externes.

Importer une image depuis un répertoire local avec de nouvelles configurations

Dans les étapes précédentes, vous avez importé des images depuis des fichiers tarball. Dans cette étape, vous apprendrez comment importer une image depuis un répertoire local et appliquer de nouvelles configurations lors du processus d'importation. Cette méthode est utile lorsque vous avez un snapshot de système de fichiers dans un répertoire et que vous souhaitez le transformer en image Docker avec des paramètres spécifiques comme la commande à exécuter.

Commencez par créer une structure de répertoire simple et un fichier qui sera inclus dans notre image :

mkdir ~/project/myimage
echo "Hello, Docker!" > ~/project/myimage/hello.txt

Cette commande crée un répertoire nommé myimage dans votre dossier ~/project et un fichier hello.txt contenant le texte "Hello, Docker!".

Nous allons maintenant utiliser la commande docker image import pour importer le contenu du répertoire ~/project/myimage. Nous utiliserons également l'option -c pour spécifier des modifications de configuration pour l'image. Dans ce cas, nous définirons l'instruction CMD, qui détermine la commande par défaut à exécuter lorsqu'un conteneur est lancé à partir de cette image.

docker image import -c 'CMD ["/bin/cat", "/hello.txt"]' ~/project/myimage myimage:latest

Dans cette commande :

  • -c 'CMD ["/bin/cat", "/hello.txt"]' définit la commande par défaut de l'image comme /bin/cat /hello.txt. L'option -c permet d'appliquer des instructions Dockerfile comme CMD, ENTRYPOINT, ENV, EXPOSE, LABEL, ONBUILD, STOPSIGNAL, USER et WORKDIR.
  • ~/project/myimage est le chemin vers le répertoire local contenant le système de fichiers
  • myimage:latest est le dépôt et le tag souhaités pour l'image importée

Après exécution de cette commande, Docker créera une nouvelle image basée sur le contenu du répertoire ~/project/myimage et appliquera la configuration CMD spécifiée.

Pour vérifier l'importation et la configuration, listez les images :

docker images

Vous devriez voir une image avec le dépôt myimage et le tag latest.

Maintenant, lançons un conteneur à partir de cette image pour vérifier que l'instruction CMD a bien été appliquée :

docker run myimage:latest

Cette commande démarre un conteneur à partir de l'image myimage:latest. Comme nous avons défini CMD comme /bin/cat /hello.txt, le conteneur devrait exécuter cette commande et afficher le contenu du fichier hello.txt, c'est-à-dire "Hello, Docker!".

Vous devriez voir "Hello, Docker!" s'afficher dans votre terminal. Cela confirme que le contenu du répertoire a bien été importé et que la configuration CMD a été appliquée avec succès.

Résumé

Dans ce lab, nous avons appris à utiliser la commande docker image import pour créer des images Docker à partir de diverses sources. Nous avons commencé par importer directement une image depuis une URL distante, démontrant comment charger une archive tarball hébergée en ligne sans téléchargement manuel. Cela impliquait d'utiliser curl pour télécharger un exemple d'archive, puis la commande docker image import avec l'URL comme entrée, montrant comment importer avec ou sans spécification de dépôt et de tag.

Les étapes suivantes, bien que non détaillées dans le contenu fourni, couvriraient probablement l'importation d'images depuis des fichiers tarball locaux en utilisant STDIN, l'importation avec un message de commit pour un meilleur suivi, et l'importation depuis un répertoire local tout en appliquant de nouvelles configurations. Ces étapes illustreraient davantage la flexibilité et les différents cas d'utilisation de la commande docker image import pour créer et gérer des images Docker.