Consegui encontrar os contêineres no diretório /var/lib/docker/containers
, mas não consigo encontrar as imagens.
Quais são os diretórios e arquivos /var/lib/docker
?
docker
docker-image
nemo
fonte
fonte
Respostas:
O conteúdo do
/var/lib/docker
diretório varia de acordo com o driver que o Docker está usando para armazenamento .Por padrão este será
aufs
, mas pode cair de volta paraoverlay
,overlay2
,btrfs
,devicemapper
ouzfs
dependendo do seu suporte do kernel. Na maioria dos lugares, esse seráaufs
o RedHatsdevicemapper
.Você pode definir manualmente o driver de armazenamento com a opção
-s
ou--storage-driver=
para o daemon do Docker ./var/lib/docker/{driver-name}
conterá o armazenamento específico do driver para o conteúdo das imagens./var/lib/docker/graph/<id>
agora contém apenas metadados sobre a imagem nos arquivosjson
elayersize
.No caso de
aufs
:/var/lib/docker/aufs/diff/<id>
tem o conteúdo do arquivo das imagens./var/lib/docker/repositories-aufs
é um arquivo JSON que contém informações de imagem local. Isto pode ser visto com o comandodocker images
.No caso de
devicemapper
:/var/lib/docker/devicemapper/devicemapper/data
armazena as imagens/var/lib/docker/devicemapper/devicemapper/metadata
os metadadosfonte
docker info
e encontre o local real específico para sua configuração .Docker for Mac
com 2 imagens de 1,5 GB cada e/var/lib
não possui diretóriodocker
.Ao usar o Docker for Mac Application, parece que os contêineres estão armazenados na VM localizada em:
ATUALIZAÇÃO (Cortesia de mmorin ):
A partir de 15 de janeiro de 2019, parece que existe apenas este arquivo:
que contém o Docker Disk e todas as imagens e contêineres dentro dele.
fonte
ubuntu
,nginx
), ou este é o local para todos os recipientes? A pergunta original pede imagens , não recipientes ...Docker for Mac
duas imagens de 1,5 GB cada e~/Library/Containers/Data/com.docker.docker/Data
não possui diretóriocom.docker.driver.amd64-linux
e o único arquivo grande estávms/0/Docker.raw
com 3,6 GB.du -hd1 ~/Library/Containers/com.docker.docker/Data/
essa era a maneira antiga de fazer, agora mudou. Ignore esta resposta a partir de 2019
No caso especial do Mac OS X ou Windows, usando o boot2docker, suas imagens do Docker são armazenadas em uma VM do VirtualBox gerenciada pelo boot2docker.
Esta VM será armazenada no local normal das imagens do VirtualBox:
OS X:
~/VirtualBox VMs/boot2docker-vm
Janelas:
%USERPROFILE%/VirtualBox VMs/boot2docker-vm
Você pode redefini-lo executando (AVISO: Isso destruirá todas as imagens que você criou e baixou até o momento):
Isso é especialmente útil se você mantiver toneladas de imagens intermediárias ao criar / depurar uma compilação sem as opções úteis --rm, cito-as aqui para referência:
ao invés de:
fonte
%USERPROFILE%\.docker\machine\machines
(observe o ponto final no caminho)C:\Users\Public\Documents\Hyper-V\Virtual hard disks\MobyLinuxVM.vhdx
Na verdade, as imagens do Docker são armazenadas em dois arquivos, como mostra o seguinte comando
fonte
docker info
é muito útil, mas a saídaDocker Root Dir: /var/lib/docker
não indica o local de armazenamento da imagem (consulte a resposta específica do Mac acima).No recém-lançado 'Docker for Windows', que usa o Hyper-V, os dados estão localizados no disco rígido virtual do Docker:
Você também pode abrir o 'Gerenciador Hyper-V' para acessar o Docker / MobyLinuxVM.
fonte
C:\ProgramData\docker\windowsfilter
para mim. Mais informações: stackoverflow.com/a/39971954/188740As imagens são armazenadas em
/var/lib/docker/graph/<id>/layer
.Observe que as imagens são apenas diferentes da imagem pai. O ID pai é armazenado com os metadados da imagem
/var/lib/docker/graph/<id>/json
.Quando você
docker run
uma imagem. O AUFS 'mesclará' todas as camadas em um sistema de arquivos utilizável.fonte
No Ubuntu você pode "jogar" com imagens em execução
Na verdade, as imagens são armazenadas dentro
/var/lib/docker/aufs/diff
fonte
Para alguém que esteja usando a caixa de ferramentas do Docker (que usa a docker-machine), as respostas relativas ao boot2docker no Mac OS X não são válidas. A VM da máquina de encaixe é chamada "padrão" e existe no
/Users/<username>/.docker/machine/machines/default/
diretóriofonte
No Docker para Windows ( Windows nativo), o armazenamento padrão do contêiner é:
fonte
docker build
comando e não vejo um arquivo que acho que seja o arquivo de imagem. Eu vejo algumas pastas e alguns arquivos de texto (por exemplo, service.txt). Que tipo de arquivo e com qual extensão eledocker build
cria?Se você estiver usando o Docker para MAC (não
boot2docker
), o local será/Users/<</>UserName></>/Library/Containers/com.docker.docker/Data/
fonte
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
Encontrei a imagem. Mas esses não são os contêineres. Não vê-los neste diretório de dados realmente ..Conforme respondido aqui , se você estiver no Mac, ele estará localizado em
fonte
Expandindo a resposta de Tristan, no Windows com Hyper-V você pode mover a imagem com estas etapas em matthuisman:
fonte
docker build
comando. Estou em um computador com Windows 10. Olho em discos rígidos C: \ Usuários \ Público \ Documentos \ Hyper-V \ Virtual, mas tudo o que vejo é MobyLinuxVM.vhdx. Onde as imagens reais são armazenadas?Se você lembrar que o Docker ainda está sendo executado em uma VM, os caminhos do sistema são relativos à VM e não ao sistema Mac Osx. Como diz tudo, está contido em um arquivo VM:
Tente executar a imagem Alpine com esta opção de volume e o comando ls que você pode listar o host da VM:
Depois disso, tente:
Agora, você pode listar a pasta docker do host da VM
fonte
Eu uso o boot2docker for Docker no Mac OSX, para que as imagens sejam armazenadas no
/Users/<USERNAME>/VirtualBox VMs/boot2docker-vm/boot2docker-vm.vmdk
.fonte
Só posso responder a esta pergunta para usuários do Ubuntu:
O diretório raiz do docker pode ser encontrado quando você executa o comando
docker info
O diretório do Docker será fornecido nesta linha: "
Docker Root Dir: /var/lib/docker
"Sobre as imagens da janela de encaixe, elas são armazenadas dentro do diretório da janela de encaixe:
/var/lib/docker/aufs/diff/
Lembre-se de que essas coisas não são as mesmas em todas as versões do docker. Atualmente, estou usando a 1.12.3.
fonte
Use o
docker info
comando para exibir informações em todo o sistema e o local pode variar.Aqui está o exemplo no Ubuntu (consulte Root Dir ):
E aqui está o exemplo no Travis CI (consulte Diretório raiz do Docker ):
Você pode usar o
--format
parâmetro para extrair essas informações em um único arquivo, por exemploou:
fonte
No Docker para Windows, os logs estão aqui:
%USERPROFILE%\AppData\Local\Docker
fonte
verifique a pasta docker em
/var/lib
as imagens são armazenadas no local abaixo:
fonte
/var/lib/docker/image/overlay2/
. Observe também que esse é o caso devido ao fato de o mecanismo do Docker estar sendo usadooverlay2
como driver de armazenamento.use a
docker inspect container_id
pasta find em MergedDir
fonte
Para o "Docker Desktop", clique no ícone da bandeja do sistema do docker e clique em "Configurações".
Na guia Avançado, você pode ver o local da imagem do disco.
fonte
Ambiente: Windows 10 Pro, borda do docker desktop 2.0.3.0
clique com o botão direito do mouse no ícone da janela de encaixe na bandeja do sistema, selecione configurações - avançado:
Localização da imagem do disco (editável pelo navegador):
C: \ Usuários \ Público \ Documentos \ Hyper-V \ Discos Virtuais \ DockerDesktop.vhdx
(está lá - o diretório Documents está oculto)
fonte
docker build
comando?fonte
No Fedora, o Docker usa o LVM para armazenamento, se disponível. No meu sistema
docker info
mostra:Nesse caso, para aumentar o armazenamento, você precisará usar ferramentas de linha de comando do LVM ou gerenciadores de partição compatíveis, como o blivet .
fonte
No Windows 2016, a janela de encaixe (DockerMsftProvider) usa a pasta "windowsfilter" na raiz da janela de encaixe
Ele usa a pasta "tmp" na raiz do docker para baixar os arquivos e exclui os arquivos após extrair os arquivos baixados na pasta "windowsfilter".
fonte
No Debian Instável / Sid,
docker info
para encontrar informações em todo o sistema.imagens são armazenadas em
/var/lib/docker/image/overlay2/imagedb/content
erecipientes são armazenados em
/var/lib/docker/containers
versão do docker
18.06.0-ce
, versão da API1.38
fonte
Não consegui resolver a questão com o Docker versão 18.09 no macos usando as respostas acima e tentei novamente.
A única solução real para mim foi usar esta
docker-compose.yml
configuração:Após o lançamento com
docker-compose up
, finalmente tive/tmp/host-volume
dos macos compartilhados como volume gravável de dentro do contêiner:Espero que isso ajude os outros também.
fonte
As imagens são armazenadas dentro
/var/lib/docker
e depois nostorage driver
diretório aplicável .O driver de armazenamento, sendo usado, pode ser determinado executando o
docker info
comando.fonte
De acordo com o Guia de introdução do Docker, "sua imagem criada" está "no registro de imagens do Docker local da sua máquina".
Isso ainda é estranho para mim, porque agora isso leva à questão. Onde está o registro de imagens Docker local da minha máquina?
No entanto, eu definitivamente acho que vale a pena compartilhar essas informações como resposta.
fonte
Se alguém precisar para fins de script, aqui está uma solução de uma linha.
No shell POSIX, com o PCRE ativado
grep
, tente:DOCKER_ROOT_DIR="$(docker info 2>&1 | grep -oP '(?<=^Docker Root Dir: ).*')"
No PowerShell:
$DOCKER_ROOT_DIR="$(docker info 2>&1 | foreach {if($_ -match "Docker Root Dir"){$_.TrimStart("Docker Root Dir: ")}})"
Observe que, no Windows 10 (a partir de
10.0.18999.1
), nas configurações padrão, ele retorna:C:\ProgramData\Docker
no modo "contêineres do Windows"/var/lib/docker
, no modo "contêineres Linux"fonte
DOCKER_ROOT_DIR="$(sudo docker info 2>&1 | grep -oP '(?<=Data loop file: ).*')"
, mas no final é um arquivo, não um diretóriosudo ls "$(docker info 2>&1 | grep -oP '(?<=^Docker Root Dir: ).*')"
liste o conteúdo deste diretório.