Table des matières

Commit

Avec la commande docker commit, nous pouvons enregistrer le conteneur en cours d'exécution dans une nouvelle image, y compris les modifications que vous avez apportées au conteneur en cours d'exécution. De plus, la commande commit peut enregistrer le conteneur en cours d'exécution dans une image de conteneur. Ceci revient à effectuer un snapshot de notre conteneur :

docker commit <container name> <container image name>

Options:

--author   # donner un nom d'auteur au commit
--message  # ajouter un message sur le commit
--pause    # mettre le conteneur en pause le temps de commiter l'image

Et aussi une manière différente :

docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

Une bonne pratique serait de confirmer l'état du conteneur à l'instant t (snapshot), en créant une nouvelle image à partir d'un conteneur :

docker commit -p <id> backup-10-01-2022

source : https://docs.docker.com/engine/reference/commandline/container_commit/

Save

La commande docker save nous permet d'enregistrer une ou plusieurs images dans un fichier TAR. Cette commande d'enregistrement préserve les informations de la couche d'image, y compris l'historique et les métadonnées. Une fois que nous avons le fichier TAR, nous pouvons le copier sur un nouvel hôte de conteneur et exécuter la commande docker load pour charger les images enregistrées sur le nouvel hôte Docker.
docker save IMAGE > /path/to/file.tar Une autre façon, nous pouvons exporter notre nouvelle image (nommée “backup-10-01-2022”) en un fichier .tar, par le biais de la commande suivante :

docker save --output ~/backup-ubuntu-container-10-01-2022.tar backup-10-01-2022

source : https://docs.docker.com/engine/reference/commandline/save/


Export

Avec la commande docker export, vous pouvez exporter le contenu du système de fichiers pour un conteneur spécifique en tant que fichier d'archive TAR. À l'aide de la commande docker import, vous pouvez ensuite importer le fichier TAR en tant qu'image Docker. Étant donné que la commande docker export capture le système de fichiers, elle peut être utilisée pour récupérer les données qui existent dans le conteneur, ce qui permet de sauvegarder les données.

Différence

Les deux dernières commandes produisent des fichiers tar, mais les informations incluses sont différentes.
La commande docker save conserve les informations de la couche d'image, y compris tout l'historique et les métadonnées. Cela nous permet d'importer entièrement le fichier tar dans n'importe quel registre Docker et de l'utiliser pour démarrer de nouveaux conteneurs.
A l'inverse, la commande docker export ne conserve pas ces informations. Il contient les mêmes fichiers que l'image qui a démarré le conteneur mais sans historique ni métadonnées.
En outre, la commande docker export inclut les modifications apportées pendant l'exécution du conteneur, telles qu'un fichier nouveau ou modifié. Cela signifie que différents conteneurs de la même image peuvent produire différents fichiers tar lors de leur exportation.