Agence web » Actualités du digital » Comment partager des images Docker avec d’autres –

Comment partager des images Docker avec d’autres –

Vous avez créé une image Docker que vous devez partager avec un collègue ? Voici comment vous pouvez distribuer une image sans que le destinataire n’ait besoin de l’exécuter docker build eux-mêmes.

Partager une image prédéfinie au lieu d’un Dockerfile vous permet de vous assurer que votre collègue utilise exactement le même logiciel. La réexécution de la compilation peut entraîner un environnement légèrement différent. Vous avez deux options pour diffuser votre image, selon la situation.

Utiliser un registre Docker

Le moyen le plus simple de partager une image Docker est de la transférer dans un registre Docker. Cette fonctionnalité est entièrement intégrée à la CLI Docker. Vous n’avez pas besoin d’effectuer de transferts de fichiers manuels lorsque vous utilisez cette méthode.

Le registre par défaut est Docker Hub. Cela vous permet de partager publiquement des images et vous donne également un référentiel privé. Créez un compte sur Docker Hub, puis exécutez docker login dans votre terminal. Fournissez les détails de votre compte pour connecter la Docker CLI à votre compte.

Ensuite, construisez votre image comme d’habitude, en utilisant docker build. Ajoutez une balise qui commence par votre nom d’utilisateur Docker Hub :

docker build -t my-account/my-image:latest .

Utilisez ensuite le docker push commande pour pousser l’image taguée vers Docker Hub :

docker push my-account/my-image:latest

Votre image est maintenant stockée en toute sécurité dans Docker Hub. Les autres utilisateurs pourront le retirer en utilisant le docker pull ou alors docker run commandes. Vous avez fini de partager votre image !

Pour une utilisation dans le monde réel, Docker Hub peut ne pas être suffisant. Si vous faites partie d’une équipe de développement, vous souhaiterez probablement conserver les images sur votre propre serveur, au lieu du registre public Hub. Vous pouvez créer un serveur de registre auto-hébergé à la place pour obtenir un stockage privé entièrement compatible avec le docker push et docker pull commandes. Cela vous permet de partager facilement des images avec toute personne pouvant accéder à votre registre privé.

Exportation d’images

Si l’utilisation d’un registre n’est pas une option, vous pouvez exporter manuellement les archives d’images Docker à la place. Cette fonctionnalité est également intégrée à la CLI Docker. Construisez votre image puis utilisez le docker save commande pour obtenir un tar archive de son contenu :

docker save my-image:latest > my-image.tar

L’exportation peut prendre quelques instants. Docker inclura tout le nécessaire pour recréer l’image – c’est tous les calques de votre Dockerfile, ainsi que les calques hérités de votre image de base. L’archive contiendra également des informations sur les balises associées à l’image.

Comme la sortie est un simple tar fichier, vous êtes maintenant libre de le distribuer de la manière que vous choisissez. Les archives peuvent être assez volumineuses, vous feriez donc généralement mieux de les télécharger sur un serveur de fichiers ou un fournisseur de stockage en nuage.

Pour utiliser une image exportée, exécutez le docker load commander. Celui-ci accepte un tar archives produites par docker save comme flux d’entrée. Docker chargera le contenu de l’archive et l’ajoutera à votre liste d’images locales.

docker load < my-image.tar

Vous verrez maintenant l’image nouvellement importée dans votre docker images production. Vous êtes prêt à démarrer un nouveau conteneur avec docker run.

L’exportation et l’importation d’images ajoutent quelques étapes supplémentaires à l’utilisation d’un registre Docker. Vous devrez transférer manuellement le fichier entre les clients. Par conséquent, cette approche est moins adaptée à une utilisation fréquente, même si elle présente également des avantages.

Conversion d’images en tar archive peut être utile pour le stockage à long terme. Si vous manquez d’espace sur votre serveur de registre, l’archivage d’anciennes images et le téléchargement de leurs tars pour sauvegarder le stockage de fichiers pourrait être un moyen rentable de récupérer une certaine capacité. Vous seriez toujours en mesure de récupérer l’image si jamais vous en aviez besoin à l’avenir.

Qu’en est-il de l’« exportation docker » ?

Docker a une autre commande liée à l’exportation, docker export. Cela ne doit pas être confondu avec docker save. Tandis que save fonctionne avec des images, export gère réellement l’individu conteneurs.

docker export produira un tar archive du système de fichiers d’un conteneur. Cela peut être utilisé pour restaurer une réplique du conteneur sur une autre machine. Si vous inspectez le contenu de l’archive, vous verrez qu’il ne s’agit que d’un système de fichiers racine Linux ordinaire, avec des répertoires comme /bin, /etc et /usr.

docker export my-container > my-container.tar

docker export est utile si vous souhaitez prendre un instantané d’un conteneur pour une restauration ultérieure. Cependant, les archives de conteneurs ne sont pas importées de la manière à laquelle vous pourriez vous attendre. Comme un conteneur représente un environnement en cours d’exécution, vous ne pouvez pas en « importer » directement. Au lieu de cela, l’importation d’une archive de conteneur construit un Nouveau image.

docker import my-container.tar my-image:latest

Dans cet exemple, Docker prendra le système de fichiers dans my-container.tar et construire automatiquement une nouvelle image appelée my-image:latest. Cela aura le même système de fichiers mais pas la même image de base ou la même configuration Docker que le conteneur d’origine que vous avez exporté.

Résumé

Docker facilite le partage d’images d’applications et d’environnements de développement avec vos collaborateurs. Il est généralement préférable de transférer les images vers un référentiel centralisé d’où tout le monde peut les extraire. Dans certains scénarios, il peut être plus judicieux d’exporter une image vers une archive que vous distribuez manuellement.

Docker vous permet également d’exporter le système de fichiers d’un conteneur pour une restauration ultérieure vers une image. Soyez prudent lorsque vous l’utilisez car il ne s’agit pas d’une reconstruction exacte et toutes les données du système de fichiers ne sont pas incluses. Tous les volumes montés sur le conteneur d’origine ne seront pas inclus dans l’archive du système de fichiers, vous devez donc prendre des mesures pour les sauvegarder séparément.

★★★★★