Onde está / var / lib / docker no Mac / OS X


138

Estou procurando a pasta /var/lib/dockerno meu Mac após instalar o docker for Mac.

Com docker info eu recebo

    Containers: 5
     ...
    Server Version: 1.12.0-rc4
    Storage Driver: aufs
     Root Dir: /var/lib/docker/aufs
     Backing Filesystem: extfs
     Dirs: 339
     Dirperm1 Supported: true
    ...
    Name: moby
    ID: LUOU:5UHI:JFNI:OQFT:BLKR:YJIC:HHE5:W4LP:YHVP:TT3V:4CB2:6TUS
    Docker Root Dir: /var/lib/docker
    Debug Mode (client): false
    ....

Mas eu não tenho um diretório /var/lib/dockerno meu host.

Eu verifiquei, /Users/myuser/Library/Containers/com.docker.docker/mas não encontrei nada lá. Alguma idéia de onde está localizado?


8
Ele está localizado dentro da vm que o docker instancia para fornecer o ambiente Linux necessário.
Larsks

1
Será que arquivo: /Users/myuser/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2
cristão

1
Essa é a imagem do disco subjacente à VM, sim. Mas se você quiser mexer no conteúdo desse diretório, precisará fazer login na própria VM. Você pode encontrar instruções para fazê-lo em docs.docker.com/v1.8/installation/mac
larsks

thx, aumentar esse arquivo funciona com o qemu-img redimensionar Docker.qcow2 + 5g forums.docker.com/t/…
christian

Você sabe onde encontrar este diretório? @Christian
Jason Xu

Respostas:


50

Veja esta resposta

Ao usar o Docker for Mac Application, parece que os contêineres estão armazenados na VM localizada em:

~ / Biblioteca / Containers / com.docker.docker / Data / com.docker.driver.amd64-linux / Docker.qcow2


51
Se você veio do Google , role para baixo para encontrar a resposta certa.
user1717828

167

Conforme mencionado nas respostas acima, você o encontrará em:
screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty

Depois de executar o tty, você pode navegar para /var/lib/docker


4
uma pequena modificação (abaixo de sua casa, não abaixo da raiz): "screen ~ / Library / Containers / com.docker.docker / Data / com.docker.driver.amd64-linux / tty"
pdenti

1
Trabalho! Mas como eu saio desse shell? Ctrl + d,, exite logoutnão funcionará.
23418 thomaskonrad

6
Você pode separar da tela com ctrl + a + d
Mik Jagger

13
A desanexação ainda manterá a sessão da tela em execução. Você pode ver isso executando screen -ls. Se você já se desanexou, execute screen -X quit. Se você tiver várias sessões de tela, precisará -Sespecificar o nome da sessão. Se você não desanexou, pressione ctrl + a,:, q, u, i, t, ENTER. Esses dois apenas executam o comando quit screen na sessão.
Dosentmatter 04/04

15
Eu acho que pode estar localizado em ~ / Library / Containers / com.docker.docker / Data / vms / 0 / tty agora.
Richard Collette

57

As outras respostas aqui estão desatualizadas se você estiver usando o Docker for Mac.

Eis como consegui entrar na VM. Execute o comando:

screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty

Este é o caminho padrão, mas você pode precisar primeiro: cd ~/Library/Containers/com.docker.docker/Data/vms

e depois lspara ver em qual diretório sua VM está e substitua o "0" de acordo.

Ao entrar, você poderá ver apenas uma tela em branco. Pressione a tecla "Enter".

Esta página explica que, para sair da VM, é necessário "Ctrl-a" e "d"


Não está funcionando totalmente, porque se você sair da VM e inseri-la novamente, ficará com o shell bagunçado.
AbstractVoid

2
Isso não está funcionando para mim. Acabo com uma casca bagunçada. Passei e matei sessões de tela anteriores e tentei novamente. Ao pressionar Enter, recebo caracteres aleatórios. se você pressionar enter novamente, novos caracteres aleatórios. E assim por diante
Steig Hallquist

1
parar de usar o programa de tela CTL-a, em seguida, CtL- \ /var/lib/dockerestá em VM onde você está depois de correr screen, por isso, por exemplo ls /var/lib/dockeretc.
Alexei Martianov

1
Eu me livrei do shell bagunçado screen -lse depois screen -X -S SESSION_NAME quitpara cada sessão. Se você se desconectar com o ctr-A, então você poderá reconectar-se à tela screen -Re obter uma concha limpa.
Andreas Riedmüller 28/04

13

Assim como @Dmitriy disse:

screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty

e pode usar ctrl a+ dpara desanexar a tela

e use screen -drpara reconectar a tela novamente (pois, se você simplesmente anexar a tela novamente, o texto do terminal ficará distorcido.)

Referência

ou se você quiser sair, use ctrl + a+ ke escolha ymatar a tela.


5

algum que é um thread de zumbi, mas como eu o encontrei aqui, é outra solução que não precisa de tela nem atrapalha o shell etc.

O caminho listado de um docker volume inspect <vol_name>

retorna o caminho para o contêiner, algo como:

"Mountpoint": "/var/lib/docker/volumes/coap_service_db_data/_data"

o _datacomponente sendo o último componente do caminho que você configurou na volumes:seção do serviço usando um determinado volume, por exemplo:

volumes: - db_data:/var/lib/postgresql/data , obvs sua milhagem varia.

Para chegar lá no mac, o método mais fácil que encontrei é realmente iniciar um pequeno contêiner em execução e montar a raiz do host no /dockerdiretório da imagem, permitindo acesso aos volumes usados ​​no host.

docker run --rm -it -v /:/docker alpine:edge

a partir deste ponto você pode cd para o volume

cd /var/lib/docker/volumes/coap_service_db_data/_data


1

Esse caminho vem do Docker Host (não do MacOS) antes dos tempos do "Docker for Mac Application", onde era "padrão" uma VM do VirtualBox e, dentro desse caminho, existe um caminho mencionado (com certeza), agora nos tempos do "Docker for Mac Application" há uma imagem Docker.qcow2, que é qemu base vm. Pular para dentro dessa maneira VM @ mik-jagger está ok (mas há mais alguns)


0

Eu diria que o arquivo:

/var/run/docker.sock

Está realmente em:

/Volumes/{DISKNAME}/var/run/docker.sock

Se você executar isso, deve provar isso, desde que o VirtualBox 5.2.8 ou posterior em execução e o compartilhamento para a /Volumes instalação sejam montados automaticamente e permanentemente E você gerou a máquina de encaixe padrão nessa versão do Virtualbox:

#!/bin/bash
docker run -d --restart unless-stopped -p 9000:9000 \
-v /var/run/docker.sock:/var/run/docker.sock portainer/portainer \
--no-auth

Em seguida, acesse o Portainer em: 192.168.99.100:9000 ou localhost: 9000

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.