Où sont Docker images stockées sur la machine hôte?
J'ai réussi à trouver les conteneurs sous répertoire /var/lib/docker/containers
, mais je ne trouve pas les images.
Quels sont les sous-répertoires et fichiers /var/lib/docker
?
- Le mieux à l'état spécificités du système d'exploitation à la question du titre et/ou les questions de déclaration dans de tels cas. Deux bonnes réponses ont été fournies pour linux et mac os (Mac OS X).
Vous devez vous connecter pour publier un commentaire.
Le contenu de la
/var/lib/docker
répertoire varier en fonction de la pilote de Docker utilise pour le stockage.Par défaut, ce sera
aufs
mais peuvent revenir àoverlay
,overlay2
,btrfs
,devicemapper
ouzfs
en fonction de votre prise en charge du noyau. Dans la plupart des endroits, ce seraaufs
mais la RedHats suis allé avecdevicemapper
.Vous pouvez définir manuellement le pilote de stockage avec la
-s
ou--stockage-pilote=
option pour le Démon Docker./var/lib/docker/{driver-name}
contiendra le pilote de stockage spécifique pour le contenu des images./var/lib/docker/graph/<id>
ne contient des métadonnées sur l'image, dans lejson
etlayersize
fichiers.Dans le cas de
aufs
:/var/lib/docker/aufs/diff/<id>
a le contenu du fichier de l'image./var/lib/docker/repositories-aufs
est un fichier JSON qui contient des informations sur l'image. Ce peut être affiché avec la commandedocker images
.Dans le cas de
devicemapper
:/var/lib/docker/devicemapper/devicemapper/data
stocke les images/var/lib/docker/devicemapper/devicemapper/metadata
les métadonnéesstretch/sid
utilisedevicemapper
trop.docker/aufs
et de voir la manière dont le stockage est organisé.docker info
et de trouver l'emplacement réel spécifiques à votre configuration./var/lib/docker/image/aufs/repositories.json
. À l'aide de Docker version 17.09.0-ce avecaufs
pilote.Docker for Mac
avec 2 images de 1,5 GO et/var/lib
a pas de répertoiredocker
.Lors de l'utilisation de Docker pour Mac Application, il apparaît que les conteneurs sont stockés à l'intérieur de la VM situé à:
Mise à JOUR (avec l'aimable autorisation de mmorin):
À compter du 15 janvier 2019, il semble y avoir seulement ce fichier:
qui contient le Support de Disque et de toutes les images et les conteneurs à l'intérieur d'elle.
ubuntu
,nginx
), ou est-ce le lieu de tous les conteneurs? La question de la première demande de images, et non récipients...Docker for Mac
avec deux images de 1,5 GO et~/Library/Containers/Data/com.docker.docker/Data
a pas de répertoirecom.docker.driver.amd64-linux
et le seul gros fichier est dansvms/0/Docker.raw
avec 3,6 GO.du -hd1 ~/Library/Containers/com.docker.docker/Data/
Dans le cas particulier de Mac OS X ou Windows, à l'aide de boot2docker, votre menu fixe les images sont stockées dans une VM VirtualBox géré par boot2docker.
Cette VM seront stockés dans le lieu habituel de VirtualBox images:
OS X:
~/VirtualBox VMs/boot2docker-vm
Windows:
%USERPROFILE%/VirtualBox VMs/boot2docker-vm
Vous pouvez le réinitialiser en cours d'exécution (attention: Cela détruit toutes les images que vous avez construit et téléchargé à ce jour):
Ceci est particulièrement utile si vous avez gardé des tonnes d'images intermédiaires lors de la construction /le débogage d'un build sans l'utile --rm options, je les citer ici à titre de référence:
Utilisation:
au lieu de:
boot2docker
résultats danscommand not found
-- pensées?%USERPROFILE%\.docker\machine\machines
(veuillez noter que l'arrêt de la trajectoire)%USERPROFILE%\.docker
n'existe pas.C:\Users\Public\Documents\Hyper-V\Virtual hard disks\MobyLinuxVM.vhdx
En fait, Docker images sont stockées dans deux fichiers comme indiqué par la commande suivante
docker info
est très utile, mais la sortieDocker Root Dir: /var/lib/docker
n'indique pas l'image à l'emplacement de stockage (voir Mac réponse ci-dessus).Les images sont stockées dans
/var/lib/docker/graph/<id>/layer
.Noter que les images sont juste des différences par rapport à l'image parent. Le parent ID est stocké avec les métadonnées de l'image
/var/lib/docker/graph/<id>/json
.Lorsque vous
docker run
une image. AUFS vont " fusionner tous les calques en un seul fichier utilisable système.Sur le nouvellement libéré " Docker pour Windows, qui utilise la technologie Hyper-V, les données se trouve dans le Panneau de disque dur virtuel:
Vous pouvez également ouvrir le "Gestionnaire Hyper-V' pour accéder au menu fixe /MobyLinuxVM.
C:\ProgramData\docker\windowsfilter
pour moi. Plus d'infos: stackoverflow.com/a/39971954/188740Pour quelqu'un qui utilise le Panneau de boîte à outils (qui utilise docker-machine), les réponses relatives à boot2docker sur Mac OS X n'est pas valide. Le docker-lavable en machine virtuelle est appelée "par défaut" et il existe dans le
/Users/<username>/.docker/machine/machines/default/
répertoire.Sur Ubuntu, vous pouvez "jouer" avec des images
En fait, les images sont stockées dans
/var/lib/docker/aufs/diff
Dans Docker pour Windows (natif de Windows) le défaut de stockage de conteneurs est à:
docker build
command & je ne vois pas le fichier je pense que c'est le fichier image. Je vois des dossiers et des fichiers texte (p. ex. service.txt). Ce type de fichier & avec ce fichier de l'extension de ladocker build
créer?Si vous utilisez le Panneau pour MAC (pas
boot2docker
) l'emplacement est/Users/<</>UserName></>/Library/Containers/com.docker.docker/Data/
jasper@~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux $ ls -lh | grep Docker -rw-r--r--@ 1 jasper staff 6.3G May 25 19:20 Docker.qcow2
j'ai trouvé l'image. Mais ce n'est pas les récipients bien. Ne pas voir dans ce répertoire de Données vraiment..Comme réponse à ici, si vous êtes sur Mac, il est situé à
Expansion sur Tristan réponse, en Windows Hyper-V, vous pouvez déplacer l'image avec ces étapes de matthuisman:
docker build
de commande. Je suis sur un Windows 10 ordinateur. Je regarde dans C:\Users\Public\Documents\Hyper-V\Virtual les disques durs, mais tout ce que je vois est MobyLinuxVM.vhdx. Où sont les vraies images stockées?- Je utiliser 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
.Je peux répondre à cette question seulement pour les utilisateurs d'Ubuntu:
Le répertoire racine de docker peut être trouvé lorsque vous exécutez la commande
docker info
Docker répertoire sera donnée dans cette ligne: "
Docker Root Dir: /var/lib/docker
"Sur le panneau des images, ils sont stockés à l'intérieur du panneau de répertoire:
/var/lib/docker/aufs/diff/
Souvenir de ces choses ne sont pas les mêmes dans toutes les version de docker. Actuellement, je suis en utilisant 1.12.3.
Si vous gardez à l'esprit que le Panneau est toujours en cours d'exécution sur une machine virtuelle, le système chemins sont relatifs à la VM et non à partir du système Mac Os x.
Comme il est dit tout est contenu dans un fichier VM :
Essayez d'exécuter Alpin image avec cette option volume et la commande ls vous êtes capable de liste de la machine virtuelle de l'hôte:
Après ce juste essayer :
Maintenant, vous êtes en mesure de répertorier les docker dossier de la WM hôte
Dans le menu fixe pour Windows, les journaux sont ici:
%USERPROFILE%\AppData\Local\Docker
vérifier le docker dossier dans
/var/lib
les images sont stockées au-dessous de lieu:
Utilisation
panneau info
de commande pour système d'affichage des informations à l'échelle et l'emplacement peut varier.Voici l'exemple sur Ubuntu (vérifier Root Dir):
Et voici l'exemple sur Travis CI (voir Docker Root Dir):
Vous pouvez utiliser
--format
paramètre d'extraire de l'information sur un seul fichier, par exempleou:
Environnement: Windows 10 Pro, docker bureau 2.0.3.0 bord
droit-cliquez sur le panneau de l'icône dans la barre d'état système, sélectionnez paramètres - avancé :
Disque emplacement de l'image (modifiable via le navigateur) :
C:\Users\Public\Documents\Hyper-V\Virtual Les Disques Durs\DockerDesktop.vhdx
(c'est là - Documents répertoire est caché)
docker build
commande?utilisation
docker inspect container_id
trouvez le dossier en vertu de l'MergedDir
Sur Fedora, Docker utilise LVM pour le stockage si elles sont disponibles. Sur mon système
docker info
montre:Dans ce cas, à accroître la capacité de stockage, vous devrez utiliser LVM outils de ligne de commande ou de partition compatible avec les gestionnaires comme blivet.
Sur Debian Unstable/Sid,
docker info
à trouver à l'échelle du système d'information.les images sont stockées au
/var/lib/docker/image/overlay2/imagedb/content
etles conteneurs sont stockés à
/var/lib/docker/containers
docker version
18.06.0-ce
, la version de l'API1.38
Dans Windows 2016, docker (DockerMsftProvider) utilise le dossier "windowsfilter" sous le panneau de la racine
Il utilise le "tmp" dossier sous le panneau de la racine pour télécharger les fichiers et il supprime les fichiers après avoir extrait les fichiers téléchargés à "windowsfilter" le dossier.
Je ne pouvais pas résoudre la question avec Docker version 18.09 sur macos en utilisant les réponses ci-dessus et essaya de nouveau.
La seule solution pour moi a été l'utilisation de ce
docker-compose.yml
configuration:Après le lancement avec
docker-compose up
j'ai enfin eu/tmp/host-volume
à partir de macos partagé en tant que volume inscriptible à partir de l'intérieur du conteneur:Espère que cela aide les autres aussi.
Les Images sont stockées à l'intérieur de
/var/lib/docker
et puis, en vertu des lois applicablesstorage driver
répertoire.Pilote de stockage, utilisé, peut être déterminée par l'exécution de
docker info
commande.Selon la Panneau guide de mise en route "votre construit l'image" est "dans votre machine locale Docker image de registre."
C'est toujours étrange pour moi, parce que maintenant, cela conduit à la question. Où est ma machine local de Docker image de registre?
Néanmoins, je pense que cette info est le partage de la valeur comme une réponse.
Pour "Panneau de Bureau", cliquez sur le panneau icône de plateau de système et cliquez sur "Paramètres".
Sur l'onglet Avancé, vous pouvez voir l'image disque de l'emplacement.
Si quelqu'un à besoin pour l'écriture de scripts fins, ici, c'est une solution en ligne.
Dans le shell POSIX, avec PCRE activé
grep
, essayez:DOCKER_ROOT_DIR="$(docker info 2>&1 | grep -oP '(?<=^Docker Root Dir: ).*')"
En PowerShell:
$DOCKER_ROOT_DIR="$(docker info 2>&1 | foreach {if($_ -match "Docker Root Dir"){$_.TrimStart("Docker Root Dir: ")}})"
Remarque, quand sur Windows 10 (à compter de
10.0.18999.1
), dans les configurations par défaut, il retourne:C:\ProgramData\Docker
dans "Windows conteneurs" mode/var/lib/docker
, dans "Linux containers" modeDOCKER_ROOT_DIR="$(sudo docker info 2>&1 | grep -oP '(?<=Data loop file: ).*')"
, mais à la fin c'est un fichier, pas un répertoiresudo ls "$(docker info 2>&1 | grep -oP '(?<=^Docker Root Dir: ).*')"
liste le contenu de ce répertoire.