Formation Docker en vidéo

Est-ce que les modifications d'un conteneur se conservent ?

La réponse à cette question est très simple. Les modifications sont conservées tant le conteneur Docker n'est pas supprimé.

Pour vérifier cette affirmation, nous allons faire des tests.

Aller dans le conteneur

Nous allons entrer dans le conteneur qui est normalement déjà en fonctionnement.

Si ce n'est plus le cas, vous pouvez en créer un autre grâce à la commande que vous connaissez bien maintenant 😉.

docker exec -it 04d3c76cdc0d bash

Créer un fichier

Ensuite crée un fichier que l'on nommera test.js

touch test.js

On peut vérifier ensuite que le fichier à bien été créé.

ls
bin   dev  home  lib64  mnt  proc  run   srv  test.js  usr
boot  etc  lib   media  opt  root  sbin  sys  tmp      var

On le voit bien. Il est entre le dossier srv et usr.

Pour sortir, nous allons utiliser la commande exit. Et pour l'arrêter, la commande docker stop 04d3c76cdc0d.

Est-ce que le fichier est toujours présent dans le conteneur ?

L'objectif à ce stade, est de répondre à la question suivante. Si nous redémarrons le conteneur, est-ce que le fichier test.js est toujours présent ?

Nous allons le vérifier.

Redémarrons le conteneur.

docker start 04d3c76cdc0d

Entrons dans le conteneur.

docker exec -it 04d3c76cdc0d bash

Vérifions si le fichier est toujours présent.

ls
bin   dev  home  lib64  mnt  proc  run   srv  test.js  usr
boot  etc  lib   media  opt  root  sbin  sys  tmp      var

Toujours présent 😃. Nous avons appris qu'un conteneur Docker garde un fichier en mémoire même si l'utilisateur l'arrêté.

ℹ️ Par conséquent lorsque nous installons un programme dans un conteneur, il est toujours présent lorsqu'on arrête le conteneur.

Est-ce que les fichiers créés sont toujours présents lorsqu'on supprime un conteneur ?

Par contre, si nous détruisons le conteneur via la commande docker rm 04d3c76cdc0d et que nous en créons un autre avec la commande docker run -it ubuntu:18.04, le fichier n'existera pas.

Et si vous avez bien compris la mécanique, vous trouverez ça logique. En effet, le conteneur pour exister va se baser sur l'image. Et celle-ci ne contient pas le fichier test.js.