Jannah Theme License is not validated, Go to the theme options page to validate the license, You need a single license for each domain name.
Linux

Comment copier/déplacer un conteneur Docker vers un autre hôte

Étant donné que les conteneurs Docker sont de petites boîtes de logiciels, pour ainsi dire, vous pouvez les copier et les déplacer d’un ordinateur à l’autre. Cependant, cela n’est pas souvent discuté, probablement parce que les grandes organisations mettent en place leurs propres référentiels, où elles peuvent personnaliser leurs propres images et les distribuer sur leurs serveurs comme bon leur semble. Mais vous ne devriez pas avoir à vous soucier de configurer votre propre ligne de distribution si vous devez occasionnellement déplacer un ou plusieurs conteneurs.

Il se peut que vous ayez travaillé sur une instance Docker sur votre ordinateur local et que vous ayez décidé de la déplacer vers un serveur plus puissant. Ou peut-être souhaitez-vous simplement déployer votre conteneur personnalisé sur plusieurs ordinateurs, « copier et coller » autour. D’autres fois, vous pouvez être insatisfait d’un fournisseur de cloud computing et vouloir passer à un autre. Quelle que soit la situation, il existe une procédure assez simple pour le faire qui sera détaillée ci-dessous.

Contenu

Enregistrer l’image du conteneur à partir de l’hôte source

Il n’est pas obligatoire d’arrêter le conteneur en premier, mais il est fortement recommandé de le faire. Vous prendrez un instantané des données dans votre instance Docker. S’il est en cours d’exécution pendant que vous faites cela, il y a une petite chance que certains fichiers finissent par être incomplets dans votre instantané. Imaginez que quelqu’un télécharge un fichier de 500 Mo. Lorsque 250 Mo ont été téléchargés, vous exécutez la commande docker commit. Le téléchargement se poursuit ensuite, mais lorsque vous restaurez cette image Docker sur un autre hôte, seuls 250 Mo sur les 500 Mo peuvent être disponibles.

Psssssst :  Écrire votre premier programme Lua sur Linux

Donc, si vous le pouvez, arrêtez d’abord l’instance.

Un conteneur Docker est construit à partir d’une image initiale générique. Au fil du temps, vous ajoutez vos propres modifications à cette image de base. Les processus exécutés à l’intérieur du conteneur peuvent également enregistrer leurs propres données ou apporter d’autres modifications. Pour conserver tout cela, vous pouvez valider ce nouvel état dans une nouvelle image.

Notez que si l’instance est en cours d’exécution, cette action la mettra en pause pendant que son contenu est enregistré. Si vous avez ajouté beaucoup de données à votre conteneur, cette opération prendra plus de temps. Si cela pose un problème, vous pouvez éviter cette pause en entrant docker commit -p=false NAME_OF_INSTANCE mycontainerimage au lieu de la commande suivante. Cependant, ne le faites pas à moins que cela ne soit absolument nécessaire. Les chances de créer une image avec des données incohérentes/incomplètes augmentent dans ce cas.

Dans ce didacticiel, un nom générique a été choisi pour l’image résultante, mycontainerimage. Vous pouvez modifier ce nom si vous le souhaitez. Si vous le faites, n’oubliez pas de le remplacer dans toutes les commandes suivantes où vous le rencontrez.

Docker Move Containers Commit

Maintenant, enregistrez cette image dans un fichier et compressez-la.

Ensuite, utilisez votre méthode de transfert de fichiers préférée et copiez mycontainerimage.tar.gz sur l’hôte vers lequel vous souhaitez migrer votre conteneur.

Charger l’image du conteneur sur l’hôte de destination

Après vous être connecté à l’hôte sur lequel vous avez transféré l’image, importez-la dans Docker.

Comme vous n’avez jamais initialisé ce conteneur ici, vous ne pouvez pas encore le démarrer avec docker start. Au lieu de cela, exécutez la même commande que vous avez utilisée dans le passé, lorsque vous avez exécuté cette instance Docker pour la première fois. La seule différence maintenant est que vous utiliserez « mycontainerimage » à la fin au lieu de l’image que vous avez utilisée dans le passé.

La commande suivante n’est qu’un exemple ; ne copiez pas et ne collez pas ceci à moins que cela ne vous concerne. (Aucun paramètre spécial n’a été requis lorsque vous avez exécuté l’image pour la première fois)

En revanche, voici un exemple de commande où le paramètre –publish était requis pour transférer le port 80 de la machine hôte vers le port 80 du conteneur :

Ensuite, vous pouvez arrêter et démarrer ce conteneur normalement, avec les commandes docker stop et docker start.

Transférer une image sans créer de fichier

Parfois, vous souhaiterez peut-être ignorer la création d’un fichier mycontainerimage.tar.gz. Peut-être que vous n’avez pas assez d’espace disque car le conteneur contient beaucoup de données. Vous pouvez enregistrer, compresser, transférer, décompresser et charger l’image sur l’hôte de destination en une seule commande. Après avoir exécuté la commande docker commit décrite dans la première section, vous pouvez utiliser ceci :

Cela devrait également fonctionner à partir de Windows, car il dispose désormais d’un client SSH intégré (PuTTY n’est plus nécessaire).

Psssssst :  Pouvez-vous porter un fedora avec un sweat à capuche ?

Ensuite, continuez avec la commande docker run qui s’applique à votre situation.

Conclusion

docker save et docker load sont parfaits comme solution ad hoc pour déplacer occasionnellement des conteneurs. Mais rappelez-vous, si vous faites cela souvent, vous voudrez peut-être configurer votre propre référentiel privé à la place.

Crédit d’image: Service médical de l’armée de l’air

Cet article est-il utile ? Oui Non

Bouton retour en haut de la page

Adblock détecté

Veuillez désactiver votre bloqueur de publicités pour pouvoir visualiser le contenu de la page. Pour un site indépendant avec du contenu gratuit, c’est une question de vie ou de mort d’avoir de la publicité. Merci de votre compréhension! Merci