Aller au contenu

Comprendre la différence entre docker load et docker import

Bannière d'article

Lorsque vous travaillez avec Docker, il est essentiel de comprendre les diverses méthodes pour créer, distribuer et gérer des images. Deux commandes souvent sources de confusion sont docker load et docker import. Bien qu’elles puissent sembler similaires, elles ont des utilisations et des implications distinctes. Cet article explore ces différences pour vous aider à choisir la commande appropriée selon vos besoins.

Théorie : comprendre les concepts

Qu'est-ce qu'une image Docker ?

Une image Docker est un modèle en lecture seule contenant tout ce qu’il faut pour exécuter une application - code, runtime, bibliothèques, variables d’environnement, et configurations. Les images sont construites à partir d'un Dockerfile et sont immuables une fois créées.

Qu'est-ce que docker load ?

La commande docker load est utilisée pour charger une image Docker à partir d'un fichier tarball (.tar). Ce fichier est généralement créé par la commande docker save. L'image chargée inclut toutes ses métadonnées (comme les tags) et peut être utilisée directement comme si elle avait été construite localement.

Qu'est-ce que docker import ?

La commande docker import crée une image Docker à partir d'un fichier système (par exemple, un fichier tarball contenant un système de fichiers, un snapshot d'une machine virtuelle, ou même une archive rootfs). Contrairement à docker load, docker import ne conserve pas les métadonnées d'image et ne crée pas d’historique pour les couches.

Pratique : Utilisation de docker load et docker import

Utilisation de docker load

Sauvegarder une image Docker

Pour sauvegarder une image Docker existante dans un fichier tarball, utilisez la commande docker save :

docker save -o myimage.tar myimage:latest

Charger une image Docker

Pour charger une image Docker à partir d'un fichier tarball, utilisez la commande docker load :

docker load -i myimage.tar

Cette commande restaure l'image avec toutes ses métadonnées, y compris les tags.

Utilisation de docker import

Préparer un fichier système

Supposons que vous avez un fichier tarball rootfs.tar représentant un système de fichiers.

Importer le fichier système

Pour créer une image Docker à partir de ce fichier, utilisez la commande docker import :

docker import rootfs.tar myimage:latest

Cette commande crée une nouvelle image Docker nommée myimage:latest à partir du fichier rootfs.tar.

Comparaison : docker load vs docker import

Fonctionnalité docker load docker import
Source Fichier tarball créé par docker save Fichier système ou archive rootfs
Conservation des métadonnées Oui Non
Conservation de l’historique Oui Non
Utilisation typique Partage d'images Docker complètes Création d'images à partir de systèmes existants
Exemple de commande docker load -i myimage.tar docker import rootfs.tar myimage:latest

Scénarios d’utilisation

  • docker load : Utilisé lorsque vous souhaitez partager une image Docker complète avec son historique et ses métadonnées. Idéal pour déplacer des images entre environnements de développement, test et production.

  • docker import : Utilisé lorsque vous avez un snapshot de système de fichiers ou une archive rootfs et que vous souhaitez créer une image Docker sans avoir besoin des métadonnées ou de l'historique. Utile pour migrer des systèmes existants vers Docker.

Conclusion

Comprendre la différence entre docker load et docker import n'est pas crucial pour une gestion efficace des images Docker. Utilisez docker load lorsque vous avez besoin de conserver toutes les métadonnées et l'historique d'une image, et préférez docker import pour créer des images à partir de systèmes de fichiers ou d'archives sans avoir besoin des métadonnées.