Publié le : 28/09/2021
Les différents manières de déplacer un conteneur docker vers une autre machine
Dans la vie d’un système d’information, la migration est inévitable. Pour ce faire, nous avons besoin de déplacer notre application qui se trouve dans un conteneur dans un autre machine.
La migration des conteneurs Docker est une tâche à part entière. Nous allons vous montrer différents manières de le faire.
Sauvegarder et charger les images
Une image Docker est un package de code, de librairies, de fichier de configuration, etc… pour une application. Les conteneurs Docker sont créé sur ces images.
Les images peuvent être compressées en utilisant la commande docker save
. Et ensuite les transférer sur une autre machine en utilisant n’importe quelle protocole de transfert de fichier.
Ci-dessous une exemple de code :
$ docker save nom-image > nom-image.tar
Une fois que le fichier soit transférer sur la nouvelle machine, nous pouvons faire : docker load
. Ci-dessous un exemple de code :
$ cat nom-image.tar | docker load
Exportation et importation des conteneurs : une autre manière de déplacer un conteneur docker vers une autre machine
L’exportation d’un conteneur Docker signifie la compression du fichier. Les fichiers exportés ont un format gzip
. Vous pouvez voir ci-dessous un exemple de code.
$ docker export nom-conteneur | gzip > nom-conteneur.gz
Ce fichier compressé est ensuite copié vers la nouvelle hôte avec rsync ou scp. Dans la nouvelle machine, nous pouvons par exemple exécuté le code ci-dessous pour importer le conteneur.
$ zcat nom-conteneur.gz | docker import - nom-conteneur
Ainsi, le nouveau conteneur créé sur le nouveau hôte peur être accessible avec la commande docker run
.
L’inconvénient de l’outil d’exportation est qu’il ne copie pas les ports et les variables ou les volumes qui contienne les données.
De ce fait, cela peut provoquer des erreurs lors du chargement du conteneur sur les nouvelles machines. Dans ce cas, il est plutôt recommandé de ne pas l’utiliser. Sauf si vous créez manuellement toutes ces paramètres.
Migration de l’image du conteneur Docker
La méthode la plus répandue pour déplacer un conteneur Docker vers une autre machine est la migration de l’image lié à ce conteneur.
Sur le conteneur à déplacer, premièrement il faut sauvegarder l’image Docker dans un fichier compresser avec la commande docker commit
.
$ docker commit container-id nom-image
Une fois que la commande ait été exécutée, l’image générée est compressée et déplacé e sur une nouvelle machine hôte. Et sur la nouvelle machine, le conteneur est créé avec la commande docker run
.
Avec cette commande, les volumes ne sons pas migrées, par contre les données sont préservées dans le conteneur.