Exportation Et Migration Docker
Cet article présente principalement les méthodes de migration et de sauvegarde de Docker, ainsi que les différences entre docker save et docker export.
1 docker save
docker save enregistre toutes les couches de l’image Docker dans un fichier tar, la commande est la suivante :
|
|
La commande de lecture correspondante à docker save
est docker load
.
2 docker export
docker export enregistre l’état actuel du conteneur Docker (qu’il soit en cours d’exécution ou arrêté) dans un fichier tar, et enregistre une couche aplatie, la commande est la suivante :
|
|
La commande correspondante à docker export
est docker import
.
3 Différences entre docker save et docker export
Le fichier tar généré par docker save
contient toutes les couches, configurations et métadonnées de l’image, conservant toutes les informations de construction et l’historique des versions de l’image. Le fichier généré par docker export
est un système de fichiers aplati, ne contenant que l’état actuel du conteneur, sans aucune information de construction ou de couches.
En général, le résultat de export
est plus petit, ce qui le rend adapté à la publication d’applications. Si des modifications et développements continus du contenu du conteneur sont nécessaires, il est préférable d’utiliser docker commit + docker save
, ce qui permet de revenir en arrière comme avec git.
4 Test pratique
Effectuez d’abord quelques modifications dans un conteneur, écrivez un fichier texte dans le répertoire racine :
|
|
Utilisez docker export pour exporter l’image du conteneur :
|
|
Utilisez docker import pour importer l’image, vous pouvez voir que l’image nommée me a été importée :
|
|
Créez un conteneur à partir de l’image importée me, vérifiez si les modifications effectuées dans un autre conteneur ont été conservées :
|
|
On constate que ce n’est plus le même conteneur qu’avant, mais les modifications ont été conservées.
Pour un conteneur unique, cette méthode permet une importation et une exportation rapides, mais si le groupe de conteneurs a été créé par docker compose, il est nécessaire d’utiliser load et save. En dehors des différents scénarios d’utilisation, la différence principale entre load et import est que export ne conserve pas l’historique des versions du conteneur, il peut être considéré comme un instantané à un moment donné. Pour plus de détails, vous pouvez consulter cet article.
En plus du transfert de conteneurs par fichiers, vous pouvez également utiliser docker hub et docker file.