Où sont stockées les images Docker sur la machine hôte?
J'ai réussi à trouver les conteneurs sous le répertoire /var/lib/docker/containers
, mais je ne trouve pas les images.
Quels sont les répertoires et les fichiers sous /var/lib/docker
?
20 réponses
Le contenu du répertoire /var/lib/docker
varie en fonction du piloteutilisé par le Docker pour le stockage .
Par défaut, ce sera aufs
, mais peuvent revenir à overlay
, overlay2
, btrfs
, devicemapper
ou zfs
en fonction de votre prise en charge du noyau. Dans la plupart des endroits, ce sera aufs
mais les RedHats sont allés avec devicemapper
.
, Vous pouvez définir manuellement le pilote de stockage avec la -s
ou --storage-driver=
option pour la Docker démon.
-
/var/lib/docker/{driver-name}
sera contient le stockage spécifique du pilote pour le contenu des images. -
/var/lib/docker/graph/<id>
contient désormais uniquement des métadonnées sur l'image, dans les fichiersjson
etlayersize
.
Dans le cas de aufs
:
-
/var/lib/docker/aufs/diff/<id>
a le contenu du fichier des images. -
{[17] } est un fichier JSON contenant des informations d'image locales. Cela peut être vu avec la commande
docker images
.
Dans le cas de devicemapper
:
-
/var/lib/docker/devicemapper/devicemapper/data
stocke les images -
/var/lib/docker/devicemapper/devicemapper/metadata
le métadonnées - notez que ces fichiers sont des fichiers "clairsemés", donc ils ne sont pas aussi gros qu'ils le semblent.
Lors de l'utilisation de L'Application Docker pour Mac, il apparaît que les conteneurs sont stockés dans la machine virtuelle située à:
~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2
Dans le cas particulier de Mac OS X ou Windows, en utilisant boot2docker, vos images Docker sont stockées dans une machine virtuelle VirtualBox gérée par boot2docker.
Cette VM sera stockée à la place normale des images VirtualBox:
OS X: ~/VirtualBox VMs/boot2docker-vm
Fenêtres: %USERPROFILE%/VirtualBox VMs/boot2docker-vm
Vous pouvez le réinitialiser en exécutant (attention: cela détruira toutes les images que vous avez construites et téléchargées jusqu'à présent):
boot2docker down
boot2docker destroy
boot2docker init
boot2docker up
Ceci est particulièrement utile si vous avez gardé des tonnes d'images intermédiaires lors de la construction / débogage d'un construire sans les options --rm utiles, je les cite ici pour référence: Utilisation:
docker build -t webapp --rm=true --force-rm=true .
Au Lieu de:
docker build -t webapp .
En fait, les images Docker sont stockées dans deux fichiers comme indiqué par la commande suivante
$ docker info
Fichier de Données:
/var/lib/docker/devicemapper/devicemapper/data
Fichier de Métadonnées:
/var/lib/docker/devicemapper/devicemapper/metadata
, Les images sont stockées dans /var/lib/docker/graph/<id>/layer
.
Notez que les images ne sont que des diffs de l'image parente. L'ID parent est stocké avec les métadonnées de l'image /var/lib/docker/graph/<id>/json
.
{Lorsque vous[2]} une image. AUFS va "fusionner" toutes les couches en un seul système de fichiers utilisable.
Sur le nouveau Docker pour Windows, qui utilise Hyper-V, les données se trouvent dans le disque dur virtuel Docker:
C:\Users\Public\Documents\Hyper-V\Virtual hard disks\MobyLinuxVM.vhdx
Vous pouvez également ouvrir le 'Hyper-V Manager' pour accéder au Docker / MobyLinuxVM.
Pour quelqu'un qui utilise Docker toolbox (qui utilise docker-machine), les réponses concernant boot2docker sur Mac OS X ne sont pas valides. La machine virtuelle docker-machine est appelée "default" et elle existe dans le répertoire /Users/<username>/.docker/machine/machines/default/
.
Sur Ubuntu, vous pouvez "jouer" avec des images en cours d'exécution
sudo baobab /var/lib/docker
En fait, les images sont stockées dans /var/lib/docker/aufs/diff
Dans Docker pour Windows (Windows natif), le stockage de conteneur par défaut est à:
> docker info
...
Docker Root Dir: C:\ProgramData\Docker
...
Si vous utilisez le Panneau pour MAC (pas boot2docker
) l'emplacement est /Users/<</>UserName></>/Library/Containers/com.docker.docker/Data/
Comme réponse ici, si vous êtes sur Mac, il est situé à
/Users/MyUserName/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2
En développant la réponse de Tristan, dans Windows avec Hyper-V, vous pouvez déplacer l'image avec ces étapes de matthuisman:
Dans Windows 10,
- arrêter docker etc
- Tapez "Hyper-V Manager" dans la zone de recherche de la barre des tâches et exécutez-le.
- Sélectionnez votre PC dans le volet de gauche (le mien est appelé BUREAU-CBP**)
- faites un clic droit sur la machine virtuelle correcte (la mienne est appelé MobyLinuxVM)
- sélectionnez "Désactiver" (s'il est en cours d'exécution)
- faites un clic droit dessus à nouveau et sélectionnez "Déplacer"
- suivez les instructions
J'utilise le boot2docker pour Docker sur Mac OSX, de sorte que les images sont stockées dans le /Users/<USERNAME>/VirtualBox VMs/boot2docker-vm/boot2docker-vm.vmdk
.
Dans Docker pour Windows, les journaux sont ici: %USERPROFILE%\AppData\Local\Docker
Je ne peux répondre à cette question que pour les utilisateurs D'Ubuntu:
Le répertoire racine de docker peut être trouvé lorsque vous exécutez la commande docker info
Le répertoire Docker sera donné dans cette ligne: "Docker Root Dir: /var/lib/docker
"
A propos des images docker, elles sont stockées dans le répertoire Docker:
/var/lib/docker/aufs/diff/
Rappelez-vous que ces choses ne sont pas les mêmes dans toutes les versions de docker. Actuellement, j'utilise 1.12.3.
Si vous gardez à l'esprit que Docker est toujours en cours d'exécution dans une machine virtuelle, les chemins d'accès système sont relatifs à la machine virtuelle et non du système Mac Osx. Comme il est dit tout est contenu dans un fichier VM:
/Utilisateurs/MyUserName/Bibliothèque/Containers/com.docker.docker / données / com.docker.pilote.amd64-linux / Docker.qcow2
Essayez D'exécuter Alpine image avec cette option de volume et la commande ls vous pouvez lister l'hôte VM:
Docker run --rm-il -v /:/vm-racine alpin:edge ls-l / VM-root
Après cela, essayez simplement:
Docker run --rm-il -v /:/vm-racine alpin:edge ls-l /vm-root/var/lib/menu fixe
Maintenant, vous pouvez lister le dossier docker de L'hôte WM
Recherchez le dossier docker dans /var/lib
Les images sont stockées à l'emplacement ci-dessous:
/var/lib/docker/image/overlay2/imagedb/content
Sur Fedora, Docker utilise LVM pour le stockage si disponible. Sur mon système docker info
montre:
Storage Driver: devicemapper
Pool Name: vg01-docker--pool
Pool Blocksize: 524.3 kB
Base Device Size: 10.74 GB
Backing Filesystem: xfs
Data file:
Metadata file:
Data Space Used: 9.622 GB
...
Dans ce cas, pour augmenter le stockage, vous devrez utiliser des outils de ligne de commande LVM ou des gestionnaires de partitions compatibles comme blivet.
Sur Debian Unstable / Sid,
docker info
pour trouver des informations à l'échelle du système.
Images sont stockées à /var/lib/docker/image/overlay2/imagedb/content
et
Conteneurs sont stockés à /var/lib/docker/containers
Version Docker 18.06.0-ce
, Version API 1.38
Et si vous voulez voir quelles images vous avez localement, vous devez exécuter Docker en interactif avec la commande bash (je pense que c'est la commande) pour obtenir l'invite linux $ normale. Ensuite, exécutez les images docker. A l'intérieur du mobylinux.vhdx, dans le/var/lib / docker / est l'endroit où le cache local est stocké.