Voir le contenu des volumes nommés de Docker for Mac

Ce billet date de plusieurs années, ses informations peuvent être devenues obsolètes.

Une image Docker est composée d'une série de couches (layers) en lecture seule.

Du démarrage d'une image résulte un conteneur en cours d'exécution sur lequel est ajouté une nouvelle couche inscriptible.

Lorsqu'un conteneur est supprimé, sa couche inscriptible est supprimée aussi, et l'image sous-jacente reste inchangée.

Le storage driver gère la façon dont ces couches interagissent les unes avec les autres en spécifiant le type d'Union File System utilisé, duquel découle un algorithme de copy-on-write :

$ docker info | grep -i "storage driver"
Storage Driver: overlay2

Ces techniques participent au concept d'infrastructure immuable.

Pour faire persister des données utilisées par des conteneurs au delà de leurs temps de vie, les volumes sont le mécanisme privilégié.

Un volume est un répertoire monté à l'intérieur d'un conteneur qui existe en dehors de l'Union File System.

Il peut être nommé ou bien basé sur un chemin d'accès.

Un volume nommé est géré automatiquement par Docker. Pour trouver son emplacement physique il est possible d'utiliser docker volume inspect, puis d'inspecter la valeur de Mountpoint.

Sous Linux ça serait quelque part dans /var/lib/docker/volumes.

Or sous Mac, Docker tourne dans une VM et pour voir ce répertoire il faut d'abord s'y connecter.

Pour ce faire, Docker for Mac expose une session screen que l'on peut utiliser pour voir le contenu des volumes nommés :

$ screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty

linuxkit-025000000001:~# ls /var/lib/docker/volumes/

[CTRL]+[A] [K] y

Avant Le Python par défaut de macOS va nous quitter Après Outils pour les classes en Python

Tag Kemar Joint