¿Dónde se almacenan las imágenes de Docker en la máquina host?


Logré encontrar los contenedores en el directorio /var/lib/docker/containers, pero no puedo encontrar las imágenes.

¿Cuáles son los directorios y archivos bajo /var/lib/docker?

Author: Peter Mortensen, 2013-10-08

20 answers

El contenido del directorio /var/lib/docker varía dependiendo del controlador que Docker esté usando para el almacenamiento.

Por defecto esto será aufs pero puede volver a overlay, overlay2, btrfs, devicemapper o zfs dependiendo del soporte del núcleo. En la mayoría de los lugares esto será aufs pero los RedHats fueron con devicemapper.

Puede configurar manualmente el controlador de almacenamiento con el -s o --storage-driver= opción para el demonio Docker .

  • /var/lib/docker/{driver-name} will contiene el almacenamiento específico del controlador para el contenido de las imágenes.
  • /var/lib/docker/graph/<id> ahora solo contiene metadatos sobre la imagen, en los archivos json y layersize.

En el caso de aufs:

  • /var/lib/docker/aufs/diff/<id> tiene el contenido del archivo de las imágenes.
  • /var/lib/docker/repositories-aufs es un archivo JSON que contiene información de imagen local. Esto se puede ver con el comando docker images.

En el caso de devicemapper:

  • /var/lib/docker/devicemapper/devicemapper/data almacena las imágenes
  • /var/lib/docker/devicemapper/devicemapper/metadata el metadatos
  • Tenga en cuenta que estos archivos son archivos "dispersos" de aprovisionamiento delgado, por lo que no son tan grandes como parecen.
 452
Author: Matt,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-02-13 22:15:05

Al usar la aplicación Docker para Mac, parece que los contenedores se almacenan dentro de la máquina virtual ubicada en:

~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2
 243
Author: mirosval,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-06-05 13:03:52

En el caso especial de Mac OS X o Windows, utilizando boot2docker, las imágenes de Docker se almacenan dentro de una VM VirtualBox administrada por boot2docker.

Esta VM se almacenará en el lugar normal de las imágenes de VirtualBox:

OS X: ~/VirtualBox VMs/boot2docker-vm

Ventanas: %USERPROFILE%/VirtualBox VMs/boot2docker-vm

Puede restablecerlo ejecutando (ADVERTENCIA: Esto destruirá todas las imágenes que haya construido y descargado hasta ahora):

boot2docker down
boot2docker destroy
boot2docker init
boot2docker up

Esto es especialmente útil si guardaste toneladas de imágenes intermedias al construir / depurar un construir sin las opciones útiles rm rm, los cito aquí para referencia: Uso:

docker build -t webapp --rm=true --force-rm=true .

En lugar de:

docker build -t webapp .
 116
Author: Phil L.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-04-25 17:25:24

En realidad, las imágenes de Docker se almacenan en dos archivos como se muestra siguiendo el comando

$ docker info

Archivo de datos: /var/lib/docker/devicemapper/devicemapper/data

Archivo de metadatos: /var/lib/docker/devicemapper/devicemapper/metadata

 72
Author: Marc Rechté,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-06-01 12:35:06

Las imágenes se almacenan en /var/lib/docker/graph/<id>/layer.

Tenga en cuenta que las imágenes son solo diferencias de la imagen principal. El ID padre se almacena con los metadatos de la imagen /var/lib/docker/graph/<id>/json.

Cuando docker run una imagen. AUFS 'fusionará' todas las capas en un sistema de archivos utilizable.

 68
Author: creack,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-09-04 08:43:07

En el nuevo Docker para Windows, que utiliza Hyper-V, los datos se encuentran en el disco duro virtual de Docker:

C:\Users\Public\Documents\Hyper-V\Virtual hard disks\MobyLinuxVM.vhdx

También puede abrir el 'Administrador de Hyper-V' para acceder a Docker / MobyLinuxVM.

 51
Author: Tristan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-07-17 08:40:13

Para alguien que está usando Docker toolbox (que usa docker-machine), las respuestas relativas a boot2docker en Mac OS X no son válidas. La máquina virtual docker-machine se llama "default" y existe en el directorio /Users/<username>/.docker/machine/machines/default/.

 45
Author: MB_CE,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-01-14 13:53:07

En Ubuntu puedes "jugar" con imágenes ejecutándose

sudo baobab /var/lib/docker

En realidad, las imágenes se almacenan dentro de /var/lib/docker/aufs/diff

captura de pantalla que muestra la herramienta de análisis de disco baobab ejecutándose en / var/lib / docker

 32
Author: test30,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-05-13 13:13:29

En Docker para Windows (Windows nativo) el almacenamiento predeterminado del contenedor está en:

   > docker info
   ...
   Docker Root Dir: C:\ProgramData\Docker
   ...
 18
Author: Tormod Haugene,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-10-17 11:02:58

Si está utilizando Docker para MAC (no boot2docker), entonces la ubicación es /Users/<</>UserName></>/Library/Containers/com.docker.docker/Data/

 17
Author: Sunil Fernandes,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-10-05 00:12:33

Como respondió aquí, si estás en Mac, se encuentra en

/Users/MyUserName/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2
 6
Author: Ricardo Martins,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 11:55:03

Ampliando la respuesta de Tristan, en Windows con Hyper-V puede mover la imagen con estos pasos desde matthuisman:

En Windows 10,

  1. Detener docker etc
  2. Escriba "Hyper-V Manager" en el cuadro de búsqueda de la barra de tareas y ejecútelo.
  3. Seleccione su PC en el panel izquierdo (El mío se llama DESKTOP-CBP**)
  4. Haga clic derecho en la máquina virtual correcta (La mía es llamado MobyLinuxVM)
  5. Seleccione "Apagar" (Si se está ejecutando)
  6. Haga clic derecho sobre él de nuevo y seleccione "Mover"
  7. Siga las indicaciones
 4
Author: boni,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-04-21 19:06:10

Uso el boot2docker para Docker en Mac OSX, por lo que las imágenes se almacenan en el /Users/<USERNAME>/VirtualBox VMs/boot2docker-vm/boot2docker-vm.vmdk.

 3
Author: Chu-Siang Lai,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-04-13 03:42:25

En Docker para Windows, los registros están aquí: %USERPROFILE%\AppData\Local\Docker

 3
Author: omasoud,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-07-31 08:51:59

Puedo responder esta pregunta solo para usuarios de Ubuntu:

El directorio raíz de docker se puede encontrar cuando se ejecuta el comando docker info

El directorio Docker se dará en esta línea: "Docker Root Dir: /var/lib/docker"

Acerca de las imágenes de docker, se almacenan dentro del directorio de docker: /var/lib/docker/aufs/diff/

Recuerde que estas cosas no son iguales en todas las versiones de docker. Actualmente, estoy usando 1.12.3.

 2
Author: Arif A.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-12-08 16:13:56

Si tiene en cuenta que Docker todavía se está ejecutando en una máquina virtual, las rutas del sistema son relativas a la máquina virtual y no del sistema Mac Osx. Como dice todo está contenido en un archivo VM:

/Users/MyUserName/Library/Containers/com.docker.docker / Data / com.docker.controlador.amd64-linux / Docker.qcow2

Intente ejecutar Alpine image con esta opción de volumen y el comando ls puede enumerar el host de la VM:

Docker run rm rm-it-v/: / vm-root alpine: edge ls-l / vm-root

Después de esto solo inténtalo:

Docker run rm rm-it-v/: / vm-root alpine: edge ls-l /vm-root/var/lib / docker

Ahora, puede listar la carpeta docker desde el host WM

 1
Author: user1842947,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-03-22 20:09:27

Compruebe la carpeta docker en /var/lib

Las imágenes se almacenan en la siguiente ubicación:

/var/lib/docker/image/overlay2/imagedb/content
 1
Author: Chandra Pal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-06-29 22:15:26

En Fedora, Docker usa LVM para el almacenamiento si está disponible. En mi sistema docker info muestra:

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

En ese caso, para aumentar el almacenamiento, tendrá que usar herramientas de línea de comandos LVM o administradores de particiones compatibles como blivet.

 0
Author: eddygeek,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-04-04 04:37:30

En Debian Unstable / Sid,

docker info para encontrar información de todo el sistema.

Las imágenes se almacenan en /var/lib/docker/image/overlay2/imagedb/content y

Los contenedores se almacenan en /var/lib/docker/containers

Versión Docker 18.06.0-ce, versión API 1.38

 0
Author: Dhanuka,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-09-14 05:04:39

Y si quieres ver qué imágenes tienes localmente, tienes que ejecutar docker en interactivo con el comando bash(creo que ese es el comando) para obtener el indicador normal de linux linux. A continuación, ejecute imágenes docker. Dentro del mobylinux.vhdx, en /var/lib/docker/ es donde se almacena la caché local.

 -1
Author: Kenneth Benson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-09-02 18:17:26