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?

563
demandé sur Peter Mortensen 2013-10-08 01:08:48

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 fichiers json et layersize.

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.
452
répondu Matt 2017-02-13 22:15:05

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
243
répondu mirosval 2016-06-05 13:03:52

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 .
116
répondu Phil L. 2015-04-25 17:25:24

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

72
répondu Marc Rechté 2017-06-01 12:35:06

, 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.

68
répondu creack 2014-09-04 08:43:07

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.

51
répondu Tristan 2016-07-17 08:40:13

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/.

45
répondu MB_CE 2016-01-14 13:53:07

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

capture d'écran montrant l'outil d'analyse de disque baobab fonctionnant sur / var / lib / docker

32
répondu test30 2014-05-13 13:13:29

Dans Docker pour Windows (Windows natif), le stockage de conteneur par défaut est à:

   > docker info
   ...
   Docker Root Dir: C:\ProgramData\Docker
   ...
18
répondu Tormod Haugene 2016-10-17 11:02:58

Si vous utilisez le Panneau pour MAC (pas boot2docker) l'emplacement est /Users/<</>UserName></>/Library/Containers/com.docker.docker/Data/

17
répondu Sunil Fernandes 2017-10-05 00:12:33

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
6
répondu Ricardo Martins 2017-05-23 11:55:03

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,

  1. arrêter docker etc
  2. Tapez "Hyper-V Manager" dans la zone de recherche de la barre des tâches et exécutez-le.
  3. Sélectionnez votre PC dans le volet de gauche (le mien est appelé BUREAU-CBP**)
  4. faites un clic droit sur la machine virtuelle correcte (la mienne est appelé MobyLinuxVM)
  5. sélectionnez "Désactiver" (s'il est en cours d'exécution)
  6. faites un clic droit dessus à nouveau et sélectionnez "Déplacer"
  7. suivez les instructions
4
répondu boni 2018-04-21 19:06:10

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.

3
répondu Chu-Siang Lai 2015-04-13 03:42:25

Dans Docker pour Windows, les journaux sont ici: %USERPROFILE%\AppData\Local\Docker

3
répondu omasoud 2016-07-31 08:51:59

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.

2
répondu Arif A. 2016-12-08 16:13:56

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

1
répondu user1842947 2018-03-22 20:09:27

Recherchez le dossier docker dans /var/lib

Les images sont stockées à l'emplacement ci-dessous:

/var/lib/docker/image/overlay2/imagedb/content
1
répondu Chandra Pal 2018-06-29 22:15:26

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.

0
répondu eddygeek 2017-04-04 04:37:30

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

0
répondu Dhanuka 2018-09-14 05:04:39

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é.

-1
répondu Kenneth Benson 2016-09-02 18:17:26