Logré encontrar los contenedores en el directorio /var/lib/docker/containers
, pero no puedo encontrar las imágenes.
¿En qué se encuentran los directorios y archivos /var/lib/docker
?
docker
docker-image
nemo
fuente
fuente
Respuestas:
El contenido del
/var/lib/docker
directorio varía según el controlador que Docker esté utilizando para el almacenamiento .Por defecto, este será
aufs
, pero puede caer de nuevo aoverlay
,overlay2
,btrfs
,devicemapper
ozfs
dependiendo de su soporte en el núcleo. En la mayoría de los lugares esto será,aufs
pero los RedHats se fuerondevicemapper
.Puede configurar manualmente el controlador de almacenamiento con la opción
-s
o--storage-driver=
para el demonio Docker ./var/lib/docker/{driver-name}
contendrá 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 archivosjson
ylayersize
.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 comandodocker images
.En el caso de
devicemapper
:/var/lib/docker/devicemapper/devicemapper/data
almacena las imágenes/var/lib/docker/devicemapper/devicemapper/metadata
los metadatosfuente
docker info
y encuentre la ubicación real específica para su configuración .Docker for Mac
con 2 imágenes de 1,5 GB cada una y/var/lib
no tiene directoriodocker
.Cuando se usa la aplicación Docker para Mac, parece que los contenedores se almacenan dentro de la VM ubicada en:
ACTUALIZACIÓN (Cortesía de mmorin ):
A partir del 15 de enero de 2019 parece que solo hay este archivo:
que contiene el Docker Disk y todas las imágenes y contenedores que contiene.
fuente
ubuntu
,nginx
) o esta es la ubicación de todos los contenedores? La pregunta original pide imágenes , no contenedores ...Docker for Mac
dos imágenes de 1.5 GB cada una y~/Library/Containers/Data/com.docker.docker/Data
no tiene directoriocom.docker.driver.amd64-linux
y el único archivo grande está envms/0/Docker.raw
3.6 GB.du -hd1 ~/Library/Containers/com.docker.docker/Data/
Esta era la antigua forma de hacerlo, ahora ha cambiado. Haga caso omiso de esta respuesta a partir de 2019
En el caso especial de Mac OS X o Windows, usando boot2docker, las imágenes de Docker se almacenan en 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 ha creado y descargado hasta ahora):
Esto es especialmente útil si guardaste toneladas de imágenes intermedias al compilar / depurar una compilación sin las útiles opciones --rm, las cito aquí como referencia: Uso:
en vez de:
fuente
%USERPROFILE%\.docker\machine\machines
(tenga en cuenta el punto final en la ruta)C:\Users\Public\Documents\Hyper-V\Virtual hard disks\MobyLinuxVM.vhdx
En realidad, las imágenes de Docker se almacenan en dos archivos como se muestra mediante el siguiente comando
fuente
docker info
es muy útil, pero el resultadoDocker Root Dir: /var/lib/docker
no indica la ubicación de almacenamiento de la imagen (consulte la respuesta específica de Mac más arriba).En el recientemente lanzado 'Docker para Windows', que usa Hyper-V, los datos se encuentran en el disco duro virtual de Docker:
También puede abrir el 'Administrador de Hyper-V' para acceder a Docker / MobyLinuxVM.
fuente
C:\ProgramData\docker\windowsfilter
para mí. Más información: stackoverflow.com/a/39971954/188740Las imágenes se almacenan en
/var/lib/docker/graph/<id>/layer
.Tenga en cuenta que las imágenes son solo diferentes de la imagen principal. La ID principal se almacena con los metadatos de la imagen
/var/lib/docker/graph/<id>/json
.Cuando eres
docker run
una imagen. AUFS 'fusionará' todas las capas en un sistema de archivos utilizable.fuente
En Ubuntu puedes "jugar" con imágenes ejecutándose
En realidad, las imágenes se almacenan dentro de
/var/lib/docker/aufs/diff
fuente
Para alguien que usa Docker toolbox (que usa docker-machine), las respuestas sobre boot2docker en Mac OS X no son válidas. La máquina virtual docker-máquina se llama "predeterminada" y existe en el
/Users/<username>/.docker/machine/machines/default/
directorio.fuente
En Docker para Windows ( Windows nativo), el almacenamiento predeterminado del contenedor está en:
fuente
docker build
comando y no veo un archivo que creo que es el archivo de imagen. Veo algunas carpetas y algunos archivos de texto (por ejemplo, service.txt). ¿Qué tipo de archivo y con qué extensión de archivodocker build
crea?Si está utilizando Docker para MAC (no
boot2docker
), entonces la ubicación es/Users/<</>UserName></>/Library/Containers/com.docker.docker/Data/
fuente
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
encontré la imagen. Pero ese no es el contenedor. No verlos en este directorio de datos realmente ..Como se respondió aquí , si está en Mac, se encuentra en
fuente
Ampliando la respuesta de Tristan, en Windows con Hyper-V puede mover la imagen con estos pasos desde matthuisman:
fuente
docker build
comando. Estoy en una computadora con Windows 10. Miro en C: \ Users \ Public \ Documents \ Hyper-V \ Discos duros virtuales, pero todo lo que veo es MobyLinuxVM.vhdx. ¿Dónde se almacenan las imágenes reales?Si tiene en cuenta que Docker todavía se está ejecutando en una VM, las rutas del sistema son relativas a la VM y no del sistema Mac Osx. Como dice todo está contenido en un archivo VM:
Intente ejecutar la imagen Alpine con esta opción de volumen y el comando ls, puede enumerar el host VM:
Después de esto solo intente:
Ahora puede enumerar la carpeta acoplable desde el host de VM
fuente
Yo 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
.fuente
Puedo responder esta pregunta solo para usuarios de Ubuntu:
El directorio raíz de Docker se puede encontrar cuando ejecuta el comando
docker info
El directorio Docker se dará en esta línea: "
Docker Root Dir: /var/lib/docker
"Sobre las imágenes de la ventana acoplable, se almacenan dentro del directorio de la ventana acoplable:
/var/lib/docker/aufs/diff/
Recuerde que estas cosas no son iguales en todas las versiones de Docker. Actualmente, estoy usando 1.12.3.
fuente
Use el
docker info
comando para mostrar información de todo el sistema y la ubicación puede variar.Aquí está el ejemplo en Ubuntu (marque el directorio raíz ):
Y aquí está el ejemplo en Travis CI (ver Docker Root Dir ):
Puede usar el
--format
parámetro para extraer esa información en un solo archivo, p. Ej.o:
fuente
En Docker para Windows, los registros están aquí:
%USERPROFILE%\AppData\Local\Docker
fuente
busque la carpeta acoplable en
/var/lib
Las imágenes se almacenan en la siguiente ubicación:
fuente
/var/lib/docker/image/overlay2/
. También tenga en cuenta que este es el caso debido al hecho de que su motor Docker está utilizandooverlay2
como controlador de almacenamiento.use la
docker inspect container_id
carpeta de búsqueda en MergedDir
fuente
Para "Docker Desktop", haga clic en el icono de la bandeja del sistema docker y haga clic en "Configuración".
En la pestaña Avanzado, puede ver la ubicación de la imagen del disco.
fuente
Entorno: Windows 10 Pro, Docker Desktop 2.0.3.0 edge
haga clic con el botón derecho en el icono de la ventana acoplable en la bandeja del sistema, seleccione configuración - avanzado:
Ubicación de la imagen del disco (editable a través del navegador):
C: \ Usuarios \ Público \ Documentos \ Hyper-V \ Discos duros virtuales \ DockerDesktop.vhdx
(está ahí: el directorio de documentos está oculto)
fuente
docker build
comando?fuente
En Fedora, Docker usa LVM para almacenamiento si está disponible. En mi sistema
docker info
muestra:En ese caso, para aumentar el almacenamiento, deberá utilizar herramientas de línea de comandos LVM o administradores de particiones compatibles como blivet .
fuente
En Windows 2016, docker (DockerMsftProvider) usa la carpeta "windowsfilter" en la raíz de docker
Utiliza la carpeta "tmp" debajo de la raíz del docker para descargar los archivos y los elimina después de extraer los archivos descargados a la carpeta "windowsfilter".
fuente
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
ylos contenedores se almacenan en
/var/lib/docker/containers
versión acoplable
18.06.0-ce
, versión API1.38
fuente
No pude resolver la pregunta con Docker versión 18.09 en macos usando las respuestas anteriores e intenté nuevamente.
La única solución real para mí fue usar esta
docker-compose.yml
configuración:Después de lanzar con
docker-compose up
finalmente tuve/tmp/host-volume
desde macos compartido como volumen de escritura desde el contenedor:Espero que esto ayude a otros también.
fuente
Las imágenes se almacenan dentro
/var/lib/docker
y luego en elstorage driver
directorio correspondiente .El controlador de almacenamiento, en uso, se puede determinar ejecutando el
docker info
comando.fuente
De acuerdo con la guía de inicio de Docker, "su imagen construida" está "en el registro local de imágenes de Docker de su máquina".
Esto todavía es extraño para mí, porque ahora lleva a la pregunta. ¿Dónde está el registro local de imágenes Docker de mi máquina?
Sin embargo, definitivamente creo que vale la pena compartir esta información como respuesta.
fuente
Si alguien lo necesita con fines de secuencias de comandos, aquí hay una solución de una línea.
En el shell POSIX, con PCRE habilitado
grep
, intente: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: ")}})"
Tenga en cuenta que, en Windows 10 (a partir de
10.0.18999.1
), en configuraciones predeterminadas, devuelve:C:\ProgramData\Docker
en modo "contenedores de Windows"/var/lib/docker
, en modo "contenedores de Linux"fuente
DOCKER_ROOT_DIR="$(sudo docker info 2>&1 | grep -oP '(?<=Data loop file: ).*')"
, pero al final es un archivo, no un directoriosudo ls "$(docker info 2>&1 | grep -oP '(?<=^Docker Root Dir: ).*')"
enumere los contenidos de este directorio.