Onde estão as imagens do Docker armazenadas na máquina hospedeira?
Quais são os directórios e ficheiros em /var/lib/docker
?
20 answers
O conteúdo da pasta /var/lib/docker
varia de acordo com o controlador que está a usar para armazenamento .
Por omissão este será aufs
mas pode voltar para overlay
, overlay2
, btrfs
, devicemapper
ou zfs
dependendo do suporte do seu kernel. Na maioria dos lugares isto será aufs
mas os RedHats foram com devicemapper
.
Pode definir manualmente o controlador de armazenamento com o -s
ou --storage-driver=
opção para o servidor do Docker .
-
/var/lib/docker/{driver-name}
will conter o armazenamento específico do controlador para o conteúdo das imagens. -
/var/lib/docker/graph/<id>
Agora só contém metadados sobre a imagem, nos ficheirosjson
elayersize
.
No caso de:aufs
:
-
/var/lib/docker/aufs/diff/<id>
tem o conteúdo do Ficheiro das imagens. -
/var/lib/docker/repositories-aufs
é um ficheiro JSON que contém informação de imagem local. Isto pode ser visto com o comandodocker images
.
No caso de:devicemapper
:
-
/var/lib/docker/devicemapper/devicemapper/data
guarda as imagens -
/var/lib/docker/devicemapper/devicemapper/metadata
a metadados
Note que estes ficheiros são pequenos ficheiros "esparsos", por isso não são tão grandes como parecem.
Ao utilizar o acoplador para aplicação Mac, parece que os contentores estão armazenados no VM Localizado em:
~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2
No caso especial do Mac OS X ou do Windows, utilizando boot2docker, as suas imagens do Docker são armazenadas dentro de uma VM VirtualBox gerida pelo boot2docker.
Este VM será armazenado no local normal das imagens VirtualBox:
OS X: ~/VirtualBox VMs/boot2docker-vm
Janelas: %USERPROFILE%/VirtualBox VMs/boot2docker-vm
Você pode reiniciá-lo se executar (Atenção: Isto irá destruir todas as imagens que você construiu e baixou até agora):
boot2docker down
boot2docker destroy
boot2docker init
boot2docker up
Isto é especialmente útil se mantiver toneladas de imagens intermédias ao construir / depurar uma compilação sem as opções úteis -- rm, passo a citá-las aqui para referência:
Uso:
docker build -t webapp --rm=true --force-rm=true .
Em vez de:
docker build -t webapp .
Na verdade, as imagens do 'Docker' são armazenadas em dois ficheiros, como mostra o seguinte comando
$ docker info
Ficheiro de Dados:
Ficheiro de meta-dados/var/lib/docker/devicemapper/devicemapper/data
:
/var/lib/docker/devicemapper/devicemapper/metadata
As imagens são armazenadas em /var/lib/docker/graph/<id>/layer
.
Note que as imagens são apenas diffs da imagem-mãe. O ID pai é gravado com os meta-dados da imagem /var/lib/docker/graph/<id>/json
.
Quando você {[2] } uma imagem. Os AUFS irão 'juntar' todas as camadas num sistema de ficheiros utilizável.
No 'acoplador para o Windows' recentemente lançado, que usa o Hyper-V, os dados estão localizados no disco rígido virtual do acoplador:
C:\Users\Public\Documents\Hyper-V\Virtual hard disks\MobyLinuxVM.vhdx
Você também pode abrir o 'Hyper-V Manager' para o acesso ao Docker / MobyLinuxVM.
Para alguém que está a usar a caixa de ferramentas do Docker( que usa a máquina do docker), as respostas relativas ao boot2docker no Mac OS X não são válidas. A VM do docker-machine é chamada de "default" e existe na diretoria /Users/<username>/.docker/machine/machines/default/
.
No Ubuntu você pode "brincar" com imagens em execução {[[4]}
sudo baobab /var/lib/docker
Na verdade, as imagens são armazenadas dentro /var/lib/docker/aufs/diff
Em acoplador para o Windows (janelas nativas), o armazenamento por omissão do contentor é em:
> docker info
...
Docker Root Dir: C:\ProgramData\Docker
...
Se está a usar o acoplador para o MAC (não {[[0]}), então a localização é /Users/<</>UserName></>/Library/Containers/com.docker.docker/Data/
Como Resposta aqui , Se você está em Mac, ele está localizado em
/Users/MyUserName/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2
Expandindo-se na resposta do Tristan, nas janelas com Hiper-V pode mover a imagem com estes passos {[3] } do matthuisman:
Nas Janelas 10,
- parar acoplador etc
- escreva "Hyper-V Manager" na caixa de pesquisa da barra de tarefas e execute-a.
- Seleccione o seu PC na área da esquerda (o meu chama-se DESKTOP-CBP**)
- carregue com o botão direito na máquina virtual correcta (a minha é chamado MobyLinuxVM)
- seleccione " Desligar "(se for running)
- carregue com o botão direito nele de novo e seleccione "mover"
- siga as indicações
Uso o boot2docker para o acoplador no Mac OSX, para que as imagens sejam armazenadas no {[[0]}.
%USERPROFILE%\AppData\Local\Docker
Só posso responder a esta pergunta para utilizadores do Ubuntu:
A pasta de topo do 'docker' poderá ser encontrada quando executar o comando docker info
O directório do 'Docker' será indicado nesta linha: "Docker Root Dir: /var/lib/docker
"
Acerca das imagens do acoplador, elas estão guardadas dentro do directório do acoplador:
/var/lib/docker/aufs/diff/
Se você tiver em mente que o acoplador ainda está rodando em um VM, os caminhos do sistema são relativos ao VM e não do sistema Mac OSX. Como diz, tudo está contido num ficheiro VM:
/Users/MyUserName/Library/Containers / com.encaixe.docker / Data / com.encaixe.controlador.amd64-linux / Docker.qcow2
Tente executar a imagem Alpina com esta opção de volume e o comando ls poderá listar a máquina VM:
Depois disto, tenta:Docker run --rm-it-v/: /vm-root alpine: edge ls -l / vm-root
Docker run --rm-it-v/: /vm-root alpine: edge ls-l /vm-root/var/lib / docker
Agora, você é capaz de listar a pasta do acoplador da máquina wm
Verifique a pasta do acoplador em /var/lib
As imagens são armazenadas abaixo do local:
/var/lib/docker/image/overlay2/imagedb/content
Em Fedora, o Docker usa LVM para armazenamento, se disponível. No meu sistema docker info
mostra:
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
...
Nesse caso, para aumentar o armazenamento, terá de usar ferramentas de linha de comandos LVM ou gestores de partições compatíveis como blivet.
No Debian Unstable / Sid,
docker info
para encontrar informações em todo o sistema.
As imagens são armazenadas em /var/lib/docker/image/overlay2/imagedb/content
e
Os recipientes são armazenados em:/var/lib/docker/containers
Docker version 18.06.0-ce
, API version 1.38
E se quiser ver as imagens que tem localmente, terá de executar o docker interactivo com o comando bash(penso que é esse o comando) para obter a linha de comandos normal do linux$. Então corre as imagens do docker. Dentro do mobylinux.vhdx, no /var/lib/docker/ é onde o cache local é armazenado.