GNU/Linux >> Tutoriels Linux >  >> Panels >> Docker

Comment utiliser Docker Enregistrer l'image et l'exporter pour le partage

Si vous débutez avec Docker, vous n'avez peut-être pas encore découvert comment partager des conteneurs et des images avec d'autres développeurs ou machines. Mais est-il possible de partager des conteneurs ? Oui! Laisser le docker save la commande image et l'docker export la commande d'image fait l'affaire !

Dans ce didacticiel, vous apprendrez à enregistrer et à exporter des conteneurs et des images à partager en exécutant des commandes Docker.

Prêt? Commençons !

Prérequis

Ce tutoriel sera une démonstration pratique. Si vous souhaitez suivre, assurez-vous d'avoir les éléments suivants :

  • Docker Desktop ou Engine installé en tant que version 20.10.7 est utilisé dans ce didacticiel.
  • N'importe quel système d'exploitation compatible Docker, Ubuntu est utilisé dans ce didacticiel.

Création d'une application Docker de base

Avant de passer à l'exportation ou à l'enregistrement de conteneurs et d'images Docker, vous devez d'abord créer une application que vous utiliserez à des fins de partage. Vous allez créer une solution arithmétique de base en tant qu'exemple d'application Docker via un environnement de ligne de commande.

1. Créez un fichier pour votre projet nommé Dockerfile , et collez le code ci-dessous dans le nouveau fichier Dockerfile .

Le code ci-dessous effectue une opération arithmétique de base qui donne une valeur de 10.

# busybox provides Unix utilities in a single executable file, 
# which enables you to do some arithmetic.
FROM busybox
# Performs a basic arithmetic operation that results in a value of 10.
CMD echo $(((20*5)/10))

2. Ensuite, ouvrez votre terminal et exécutez la docker build commande ci-dessous pour construire l'application nommée (arithmetic ) dans le lieu de travail (. ).

docker build --tag arithmetic .

Si vous utilisez Linux, vous devrez peut-être ajouter la commande sudo au début pour éviter d'obtenir une erreur "autorisation refusée", comme ceci :sudo docker build --tag arithmetic . Ajout du sudo commande élève la commande en tant qu'administrateur.

3. Exécutez la commande ci-dessous pour exécuter l'application Docker que vous avez construite (arithmetic ). L'exécution de l'application Docker crée également automatiquement un conteneur pour votre application.

docker run arithmetic

Exporter des conteneurs Docker

Maintenant que vous avez une application Docker de base, il est temps d'expliquer comment exporter un conteneur Docker. Construire une énorme application prend beaucoup de temps et peut être un frein si vous souhaitez simplement partager le conteneur avec votre équipe. Existe-t-il un moyen plus rapide de partager le conteneur ? Oui !

Au lieu de créer l'application directement à partir d'un Dockerfile, exportez le conteneur Docker.

1. Exécutez le docker commande ci-dessous pour tout lister (ls --all ) containers disponible sur votre machine. Notez l'CONTAINER ID du conteneur que vous souhaitez partager, car vous en aurez besoin pour exporter le conteneur à l'étape suivante.

Notez que vous ne pouvez exporter que des conteneurs, pas des images.

docker container ls --all

2. Ensuite, exécutez la commande ci-dessous pour export le conteneur Docker de votre choix (container-id ). Remplacez container-id avec l'ID de conteneur que vous avez noté à la première étape.

Lors de l'export, vous enregistrez le système de fichiers du conteneur dans un .tar archive (arithmetic.tar ).

docker export container-id > arithmetic.tar

3. Enfin, vérifiez votre dossier de projet dans votre gestionnaire de fichiers, et vous verrez qu'un nouveau .tar l'archive a été créée (arithmetic.tar ). Puisque vous avez exporté le conteneur vers un .tar archive, vous pouvez maintenant la partager avec n'importe qui.

Importer des conteneurs Docker

Au lieu d'exporter, vous devrez peut-être importer un conteneur Docker qu'un coéquipier a partagé avec vous. Si c'est le cas, le docker import commande est ce dont vous avez besoin. L'docker import La commande prend le système de fichiers exporté et le convertit en un système de fichiers image que vous pouvez exécuter sur votre machine.

1. Exécutez le docker suivant commande pour import un conteneur (arithmetic.tar ) et convertissez-le en image. Lors de l'import, vous devez joindre une balise (latest ) et nommez l'image (put_any_name_here ), comme indiqué ci-dessous.

docker import arithmetic.tar put_any_name_here:latest

2. Ensuite, exécutez la commande ci-dessous pour répertorier toutes les images Docker existantes, afin de pouvoir vérifier si une nouvelle image existe.

docker images

Ci-dessous, vous pouvez voir qu'une nouvelle image Docker existe.

3. Maintenant, exécutez le docker run commande ci-dessous pour ouvrir le shell (sh ) pour l'image importée. Le conteneur s'exécute de manière interactive et est attaché à votre terminal (-i et -t drapeaux).

 docker run -i -t put_any_name_here:latest sh

Vous pouvez dire par l'invite ci-dessous (/ #), vous êtes maintenant dans le shell de l'image importée.

4. Enfin, exécutez la commande ci-dessous pour voir si l'image fonctionne comme prévu.

echo $(((20*5)/10))

Si l'image fonctionne, vous obtiendrez une sortie de 10 , comme indiqué ci-dessous.

Si vous essayez d'exécuter l'image directement, vous obtiendrez une erreur, comme indiqué ci-dessous, car l'image importée est une image du système de fichiers.

Enregistrement d'images via Docker Save Image

Vous souhaitez peut-être enregistrer une image Docker plutôt qu'un conteneur. Si c'est le cas, allez avec le docker save commande d'image à la place. Contrairement à l'docker export commande, la docker save La commande permet d'enregistrer directement une ou plusieurs images dans une archive tar et de la partager avec n'importe qui.

Notez que vous ne pouvez enregistrer et charger que des images Docker, pas des conteneurs.

  1. Exécutez la commande ci-dessous pour enregistrer une image Docker (arithmétique) dans votre .tar préféré archive (arm_image.tar ). Vous pouvez maintenant partager le .tar archiver avec d'autres développeurs afin qu'ils puissent charger l'image.
docker save arithmetic > arm_image.tar

2. Maintenant, exécutez la commande ci-dessous pour créer un répertoire avec le nom de votre choix (mkdir arm ). Mais pour cette démo, le répertoire est nommé arm . La commande extrait ensuite l'image du .tar archive (-xf arm_image.tar ) dans le nouveau répertoire (arm ).

Extraire le contenu du .tar archive vous permet de confirmer si l'image que vous avez enregistrée dans le fichier .tar archive existe.

mkdir arm && tar -xf arm_image.tar -C arm

3. Enfin, exécutez l'tree commande ci-dessous pour afficher l'arborescence des répertoires de l'image que vous avez extraite dans le ~/arm annuaire. tree ~/arm

Ci-dessous, vous pouvez voir les fichiers et sous-répertoires à l'intérieur du répertoire où vous avez extrait l'image Docker.

Si vous prévoyez de partager votre image Docker sur le hub Docker, la meilleure option est d'exécuter la docker save commande. Pourquoi? Avec la docker save command , vous enregistrez essentiellement l'image exactement comme elle est censée s'exécuter. De plus, vous ne pouvez publier des images que sur le hub Docker, donc certainement, la docker export command n'est pas une bonne option.

Charger des images Docker

En supposant que vous ayez déjà enregistré une image à des fins de sauvegarde ou de partage, comment la chargeriez-vous sur une machine ? Pas de soucis, le docker load commande peut aider. Le docker load La commande vous permet de charger une image ou un référentiel sur votre ordinateur, en restaurant à la fois les images et les balises.

Pour mieux voir comment le docker load commande fonctionne, supprimez toutes les images Docker que vous avez créées précédemment.

1. Exécutez la commande ci-dessous pour répertorier toutes les images Docker dans votre appareil.

docker images

Ci-dessous, vous pouvez voir qu'il y a deux images disponibles. Notez l'ID D'IMAGE de chacune des images car vous supprimerez ces images à l'étape suivante.

2. Exécutez la commande ci-dessous pour supprimer (rm ) Images Docker par les ID d'image que vous spécifiez. Remplacer imageID1 et imageID2 avec les ID d'image que vous avez notés à la première étape.

docker image rm imageID1 imageID2

3. Maintenant, exécutez le docker load commande ci-dessous pour charger une image depuis un .tar archive (arm_image.tar ).

docker load < arm_image.tar

4. Réexécutez les docker images comme vous l'avez fait à la première étape pour répertorier toutes les images disponibles sur votre machine. docker images

docker images

Ci-dessous, vous pouvez voir l'image nouvellement chargée.

5. Enfin, exécutez la commande ci-dessous pour exécuter et tester si l'image fonctionne.

docker run arithmetic

Notez que la commande a renvoyé une valeur de 10, ce qui indique que l'image chargée fonctionne.

Conclusion

Tout au long de ce didacticiel, vous avez appris à exporter et importer des conteneurs, ainsi qu'à charger et enregistrer des images. Vous devriez maintenant avoir une connaissance de base de la conversion de vos images de sauvegarde Docker et de vos conteneurs sous une forme partageable, telle qu'un fichier TAR.

À un moment donné, vous devrez partager votre image ou votre conteneur Docker. Maintenant, comment comptez-vous intégrer ces nouvelles connaissances lorsque vous travaillez avec des conteneurs et des images Docker, peut-être un système de sauvegarde ?


Docker
  1. Comment exporter et importer des conteneurs Docker

  2. Comment utiliser un Dockerfile pour créer une image Docker

  3. Comment et pourquoi utiliser un hôte Docker distant

  4. Comment installer et utiliser Docker Compose sur CentOS

  5. Comment sauvegarder et restaurer des conteneurs Docker

Qu'est-ce que Docker Compose et comment l'utiliser ?

Comment utiliser Docker Cp pour copier des fichiers entre l'hôte et les conteneurs

Comment créer une image Docker à partir d'un conteneur en cours d'exécution

Comment déployer et gérer un conteneur Docker MongoDB

Comment utiliser Docker Commit pour modifier les images de conteneur

Comment installer et utiliser Docker sur Ubuntu 20.04