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

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 ait besoin d'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 exécute exactement le même logiciel. La réexécution de la construction pourrait entraîner un environnement subtilement 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 consiste à la pousser vers un registre Docker. Cette fonctionnalité est entièrement intégrée à la CLI Docker. Vous n'avez pas besoin d'effectuer de transfert manuel de fichiers 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 borne. Fournissez les détails de votre compte pour connecter la CLI Docker à votre compte.

Créez ensuite votre image normalement, en utilisant docker build . Ajoutez une balise commençant par votre nom d'utilisateur Docker Hub :

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

Utilisez ensuite le docker push commande pour envoyer 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 docker run commandes. Vous avez fini de partager votre image !

Pour une utilisation dans le monde réel, Docker Hub peut ne pas suffire. 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 du 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-à-dire toutes les couches 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, il est donc généralement préférable de les télécharger sur un serveur de fichiers ou un fournisseur de stockage dans le cloud.

Pour utiliser une image exportée, exécutez le docker load commande. Ceci accepte un tar archive produite 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 vos 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 par rapport à 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 a aussi ses 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, archivez les anciennes images et téléchargez leurs tars vers le stockage de fichiers de sauvegarde pourrait être un moyen rentable de récupérer une certaine capacité. Vous pourrez toujours récupérer l'image si vous en avez besoin à l'avenir.

Qu'en est-il de "docker export" ?

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

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 normal, avec des répertoires comme /bin , /etc et /usr .

docker export my-container > my-container.tar

docker export est utile si vous souhaitez créer 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 direct et en cours d'exécution, vous ne pouvez pas en "importer" un directement. Au lieu de cela, l'importation d'une archive de conteneur construit un nouveau photo.

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

Dans cet exemple, Docker prendra le système de fichiers dans my-container.tar et construit 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é.

CONNEXE : Comment démarrer avec le nouveau registre de conteneurs Docker de Github

Résumé

Docker facilite le partage d'images d'application 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é à partir duquel tout le monde peut 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.


Docker
  1. Comment déplacer des images Docker entre les hôtes

  2. Comment installer Jenkins avec Docker

  3. Comment modifier les images Docker

  4. Comment valider les modifications apportées à une image Docker

  5. Comment créer et configurer automatiquement des images Docker personnalisées avec Dockerfile - Partie 3

Comment mettre à jour les images Docker vers la dernière version

Gardez vos images Docker gérables avec Docker Image Prune

Comment utiliser Docker Commit pour modifier les images de conteneur

Comment créer une image Docker personnalisée avec Dockerfile

Partage d'images Docker sur Docker Hub

Comment répertorier / rechercher / extraire des images docker sous Linux