Comment Copier / Déplacer un Container Docker vers un autre Hôte

Déplacez facilement vos conteneurs Docker et vos volumes de données d'un hôte Linux à un autre. Découvrez comment dans notre guide détaillé.

Depuis Docker, les conteneurs sont de petites boîtes de logiciels que vous pouvez facilement copier et déplacer d'un ordinateur à un autre. Il se peut que vous ayez travaillé sur une instance Docker sur votre ordinateur local et décidé de la déplacer vers un serveur plus puissant. Ou peut-être souhaitez-vous tout simplement déployer votre conteneur personnalisé sur plusieurs ordinateurs en le "copiant-collant". Parfois, vous pouvez être mécontent d'un fournisseur de cloud computing et vouloir passer à un autre. Ici, nous vous montrons comment déplacer votre image de conteneur Docker existante et vos volumes de données d'un hôte Linux à un autre.

Enregistrer l'image du conteneur depuis l'hôte source

Commencez par lister les conteneurs Docker disponibles sur votre système. Dans mon cas, je souhaite exporter mon conteneur Docker Nginx vers une nouvelle machine :

docker ps

Repérez le conteneur que vous souhaitez copier, puis arrêtez l'instance :

docker stop NOM_DE_L_INSTANCE

Un conteneur Docker est construit à partir d'une image générique initiale. Au fil du temps, vous ajoutez vos propres modifications à cette image de base. Les processus en cours d'exécution à l'intérieur du conteneur peuvent également enregistrer leurs propres données ou effectuer d'autres modifications. Pour préserver tout cela, enregistrez l'état actuel de votre conteneur dans une nouvelle image :

docker commit NOM_DE_L_INSTANCE monimageconteneur

Remarquez que si l'instance est en cours d'exécution, cette action la mettra en pause pendant que son contenu est enregistré. Si cela pose un problème, vous pouvez éviter cette pause en entrant docker commit -p=false NOM_DE_L_INSTANCE monimageconteneur à la place. Cependant, ne faites pas cela à moins que ce ne soit absolument nécessaire. Dans ce cas, les chances de créer une image avec des données incohérentes ou incomplètes augmentent.

Ensuite, enregistrez votre image de conteneur Docker nouvellement créée dans un fichier d'archive :

docker save -o monimageconteneur.tar monimageconteneur

Utilisez votre méthode de transfert de fichier préférée et copiez votre fichier .tar vers l'hôte où vous souhaitez déplacer votre conteneur Docker. Par exemple, la commande suivante transfère mon image Docker Nginx en utilisant scp :

scp ./monimageconteneur.tar ramces@mon.adresse.ip.ici:/home/ramces/

Exporter un volume Docker depuis votre conteneur

L'un des inconvénients de l'enregistrement d'une image Docker est qu'elle ne comprend pas les accessoires Docker que vous avez configurés avec votre conteneur. Cela comprend tous les points de montage réseau et les volumes que vous avez créés pour stocker vos données persistantes.

Pour exporter correctement votre volume de données, commencez par installer Git sur votre machine locale :

sudo apt install git

Exécutez la commande suivante pour télécharger le script d'exportation de volume pour Docker :

git clone https://github.com/ricardobranco777/docker-volumes.sh.git

Vérifiez que le script d'exportation a les bons bits de permission, puis copiez-le dans le répertoire "/usr/local/bin/" de votre machine :

sudo chmod +x ./docker-volumes.sh/docker-volumes.sh sudo cp ./docker-volumes.sh/docker-volumes.sh /usr/local/bin/

Testez si votre script fonctionne correctement, puis extrayez tous les volumes associés à votre conteneur :

docker-volumes.sh -h docker-volumes.sh NOM_DE_L_INSTANCE save monimageconteneur-volume.tar

Envoyez vos fichiers de volume Docker nouvellement archivés vers votre machine distante :

scp ./monimageconteneur-volume.tar ramces@mon.adresse.ip.ici:/home/ramces/

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

Connectez-vous à votre hôte distant, puis exécutez la commande suivante pour la charger dans le démon Docker de votre machine distante :

docker load -i ./monimageconteneur.tar

Utilisez docker create pour réinitialiser votre image de conteneur Docker avec ses flags d'exécution d'origine provenant de votre machine source. Par exemple, mon conteneur Docker Nginx avait initialement le port 80 mappé sur le port 8080 de ma machine hôte :

docker create --name mon-conteneur-nginx -p 8080:80 monimageconteneur

Démarrez votre conteneur Docker nouvellement importé :

docker start mon-conteneur-nginx

Confirmez que votre image importée fonctionne correctement en listant tous les conteneurs actifs du système :

docker ps

Importer un volume Docker vers votre conteneur

Pour importer un fichier de volume Docker .tar, commencez par télécharger Git sur votre nouvel hôte :

sudo apt install git

Tout comme avec votre système d'origine, téléchargez...

Le script d'assistance docker-volume.sh, définissez les droits d'autorisation sur "exécuter", puis copiez-le dans le répertoire "/usr/local/bin" de votre nouvelle machine.

Créez un nouveau conteneur Docker en utilisant votre fichier d'image exporté :

docker create --name my-nginx-container -v myvol:/usr/share/nginx/html -p 8080:80 mycontainerimage

Exécutez le script docker-volume.sh avec votre fichier .tar d'origine pour le charger dans le démon Docker de votre nouveau système :

docker-volumes.sh my-nginx-container load mycontainerimage-volume.tar

Démarrez votre nouveau conteneur Docker en exécutant la commande suivante :

docker start my-nginx-container

Vérifiez si votre conteneur charge correctement votre volume en examinant ses données de configuration interne :

docker inspect -f '{{ .Mounts }}' my-nginx-container

Transférer l'image sans créer de fichier

Parfois, vous voudrez ignorer la création d'un fichier mycontainerimage.tar.gz. Peut-être n'avez-vous pas suffisamment d'espace disque car le conteneur contient beaucoup de données. Vous pouvez enregistrer, transférer et charger l'image sur l'hôte de destination en une seule commande. Après avoir exécuté la commande docker commit mentionnée ci-dessus, vous pouvez utiliser ceci :

docker save mycontainerimage | ssh ramces@my.ip.address docker load

Cela devrait fonctionner également sous Windows, car il dispose maintenant d'un client SSH intégré (PuTTY n'est plus nécessaire).

Poursuivez avec la commande docker create qui s'applique à votre situation.

Notez bien : Assurez-vous d'avoir correctement monté tout volume Docker qui était précédemment attaché à votre conteneur avant de démarrer l'image importée.

Enfin, démarrez votre conteneur Docker nouvellement importé en exécutant docker start suivi du nom de votre conteneur.

Utilisation de Docker Compose pour déplacer un déploiement Docker complet

Avec son plugin Compose, Docker permet de construire, configurer et exécuter des programmes complexes sans se soucier de la pile logicielle sous-jacente du serveur. Cela vous permet de créer des déploiements d'applications reproductibles sur différents systèmes Linux.

Pour commencer à migrer votre configuration Docker existante vers Docker Compose, assurez-vous d'avoir actuellement le plugin Compose dans votre système :

sudo apt install docker-compose-plugin docker-buildx-plugin

Créez un nouveau dossier dans votre répertoire personnel pour votre installation Docker Compose :

mkdir ~/my-docker-compose && cd ~/my-docker-compose

Utilisez votre éditeur de texte préféré pour créer un fichier "docker-compose.yml" pour votre application :

nano ./docker-compose.yml

Collez le bloc de code suivant dans votre fichier Compose, puis adaptez-le à vos besoins spécifiques :

version: '3'
volumes:
myvol: # Remplacez par le nom de votre volume importé.
services:
nginx:
image: mycontainerimage # Remplacez par le nom de votre image Docker importée.
ports:
- "8080:80"
volumes:
- myvol:/usr/share/nginx/html # Remplacez "myvol" par le nom de votre image montée.

Enregistrez votre nouveau fichier Compose, puis exécutez la commande suivante pour le démarrer :

docker compose up -d

Enfin, vérifiez si votre déploiement Compose fonctionne correctement. Dans mon cas, je vais tester mon conteneur Docker Nginx en ouvrant un navigateur Web et en accédant à "localhost:8080".

Apprendre à copier et déplacer votre conteneur Docker vers d'autres hôtes Linux n'est qu'une des nombreuses tâches que vous pouvez effectuer avec votre machine. Explorez ce merveilleux monde de l'auto-hébergement en installant un serveur Minecraft sur Linux en utilisant Docker.

Questions et réponses à maîtriser

Comment exporter un container docker ?

Pour exporter un container docker, suivez ces étapes simples : 1. Accédez à la section 'Conteneur' dans Docker et sélectionnez le container que vous souhaitez exporter. 2. Cliquez sur 'Paramètres' puis sur 'Exporter'. Vous pouvez choisir d'exporter uniquement les paramètres du container ou les paramètres ainsi que son contenu. 3. Indiquez la destination du fichier exporté. 4. Cliquez sur 'Exporter' pour finaliser l'exportation du container.

Où sont stockés les containers docker ?

Les containers Docker sont stockés par défaut dans le répertoire C:\ProgramData\docker, répartis dans les sous-répertoires 'image' et 'windowsfilter'. Cependant, l'emplacement de stockage peut être modifié en utilisant la configuration docker-root, comme indiqué dans la documentation officielle de Docker pour Windows.

Comment mettre à jour un container docker ?

Pour mettre à jour un container Docker, suivez ces étapes : 1. Connectez-vous à l'interface d'administration de votre NAS (DSM). 2. Assurez-vous d'avoir la dernière version de Docker pour votre NAS. 3. Accédez au Centre de Paquets et vérifiez si des paquets doivent être mis à jour. 4. Si des mises à jour sont disponibles, cliquez sur le menu 'Mettre à jour' en haut à gauche pour les installer. En suivant ces étapes, vous pouvez facilement mettre à jour votre container Docker.

Comment déployer docker ?

Pour déployer Docker rapidement et efficacement, suivez les étapes suivantes : 1. Objectifs : Définissez clairement les objectifs de déploiement de Docker sur votre serveur. 2. Préparation du serveur : Assurez-vous que votre serveur est prêt en installant toutes les dépendances nécessaires et en configurant correctement les paramètres du système. 3. Installation de Docker : Téléchargez et installez Docker sur votre serveur en suivant les instructions spécifiques à votre système d'exploitation. 4. Configuration de Docker : Personnalisez la configuration de Docker en fonction de vos besoins, ajustez les paramètres de sécurité et définissez les options de stockage et de réseau. 5. Vérification du bon fonctionnement de Docker : Assurez-vous que Docker fonctionne correctement en exécutant des commandes de base comme 'docker run hello-world' pour tester la connectivité et la disponibilité des conteneurs. 6. Lancement d'un serveur MySQL / MariaDB : Choisissez une version de MySQL ou MariaDB, puis lancez un conteneur Docker correspondant sur votre serveur. 7. Lancement d'un serveur Apache + PHP : Choisissez une version d'Apache et de PHP, puis lancez un autre conteneur Docker pour héberger votre site web. 8. Création d'un fichier docker-compose : Réunissez les deux conteneurs dans un fichier docker-compose.yml pour simplifier le déploiement et la gestion de vos services. En suivant ces étapes, vous pourrez déployer rapidement Docker sur votre serveur et commencer à utiliser des conteneurs pour héberger vos applications de manière efficace.

Maintenant que tu as fini de lire Comment Copier / Déplacer un Container Docker vers un autre Hôte, nous t'invitons à explorer davantage la catégorie Linux. Tu y trouveras d'autres articles intéressants qui élargiront tes connaissances et te tiendront informé. Ne cesse pas de lire et de découvrir plus!

Index
  1. Enregistrer l'image du conteneur depuis l'hôte source
  2. Exporter un volume Docker depuis votre conteneur
  3. Charger l'image du conteneur sur l'hôte de destination
  4. Importer un volume Docker vers votre conteneur
  5. Transférer l'image sans créer de fichier
  6. Utilisation de Docker Compose pour déplacer un déploiement Docker complet
  7. Questions et réponses à maîtriser
    1. Comment exporter un container docker ?
    2. Où sont stockés les containers docker ?
    3. Comment mettre à jour un container docker ?
    4. Comment déployer docker ?

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Go up