Gdzie jest / var / lib / docker w systemie Mac / OS X

145

Szukam folderu /var/lib/dockerna moim Macu po zainstalowaniu Dockera dla Maca.

Z docker info dostanę

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

Ale nie mam katalogu /var/lib/dockerna moim hoście.

Sprawdziłem, /Users/myuser/Library/Containers/com.docker.docker/ale nic tam nie znalazłem. Masz jakiś pomysł, gdzie się znajduje?

chrześcijanin
źródło
8
Znajduje się wewnątrz maszyny wirtualnej, której instancja dockerowa jest tworzona, aby zapewnić niezbędne środowisko Linux.
larsks 22.07.16
1
Czy to może być ten plik: /Users/myuser/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2
christian
1
To jest obraz dysku będący podstawą maszyny wirtualnej, tak. Ale jeśli chcesz bawić się zawartością tego katalogu, musisz zalogować się do samej maszyny wirtualnej. Instrukcje, jak to zrobić, można znaleźć pod adresem docs.docker.com/v1.8/installation/mac
larsks
thx, zwiększanie rozmiaru tego pliku działa z qemu-img resize Docker.qcow2 + 5g forums.docker.com/t/ ...
christian
Czy wiesz, gdzie znaleźć ten katalog? @Christian
Jason Xu

Odpowiedzi:

52

Zobacz tę odpowiedź

Podczas korzystania z aplikacji Docker for Mac wydaje się, że kontenery są przechowywane w maszynie wirtualnej znajdującej się pod adresem:

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

PeterM
źródło
58
Jeśli przyszedłeś tu z Google , przewiń w dół, aby znaleźć właściwą odpowiedź.
user1717828
171

Jak wspomniano w powyższych odpowiedziach, znajdziesz go w:
screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty

Po uruchomieniu tty możesz przejść do /var/lib/docker

Mik Jagger
źródło
4
jedna niewielka modyfikacja (pod Twoim domem, nie poniżej katalogu głównego): "screen ~ / Library / Containers / com.docker.docker / Data / com.docker.driver.amd64-linux / tty"
pdenti
1
Pracuje! Ale jak wyjść z tej powłoki? Ctrl + d exit, i logoutnie będzie działać.
thomaskonrad
6
Możesz odłączyć się od ekranu za pomocą ctrl + a + d
Mik jagger
13
Odłączenie będzie nadal zapewniało działanie sesji ekranu. Możesz to zobaczyć, uruchamiając screen -ls. Jeśli już się odłączyłeś, biegnij screen -X quit. Jeśli masz wiele sesji ekranowych, musisz -Spodać nazwę sesji. Jeśli nie odłączyłeś się, naciśnij ctrl + a,:, q, u, i, t, ENTER. Ci dwaj po prostu uruchamiają w sesji polecenie screen quit.
dosentmatter
15
Myślę, że teraz może znajdować się w ~ / Library / Containers / com.docker.docker / Data / vms / 0 / tty.
Richard Collette
57

Inne odpowiedzi tutaj są nieaktualne, jeśli używasz Dockera dla komputerów Mac.

Oto, jak udało mi się dostać do maszyny wirtualnej. Uruchom polecenie:

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

To jest ścieżka domyślna, ale może być konieczne wykonanie najpierw: cd ~/Library/Containers/com.docker.docker/Data/vms

a następnie lssprawdzić, w którym katalogu znajduje się Twoja maszyna wirtualna, i odpowiednio zamienić „0”.

Kiedy jesteś w środku, możesz po prostu zobaczyć pusty ekran. Naciśnij klawisz „Enter”.

Ta strona wyjaśnia, że ​​aby wyjść z maszyny wirtualnej, musisz nacisnąć „Ctrl-a”, a następnie „d”

Dmitriy
źródło
Nie w pełni działa, ponieważ jeśli wyjdziesz z VM i wejdziesz do niej ponownie, otrzymasz popsutą powłokę.
AbstractVoid
2
To nie działa dla mnie. Skończyło się na zepsutej muszli. Przeszedłem i zabiłem poprzednie sesje ekranowe, a następnie spróbowałem ponownie. Po naciśnięciu klawisza Enter otrzymuję losowe znaki. jeśli ponownie naciśniesz Enter, nowe losowe znaki. I tak dalej
Steig Hallquist
1
aby wyjść z programu screen, użyj ctl-a, a następnie ctl- \ /var/lib/dockerznajduje się na VM, na którym jesteś po uruchomieniu screen, więc np. ls /var/lib/dockeritd.
Alexei Martianov
1
Pozbyłem się przez skorupy bałagan screen -ls, a następnie screen -X -S SESSION_NAME quitdla każdej sesji. Jeśli rozłączysz się za pomocą ctr-A, wtedy D możesz ponownie połączyć się z ekranem za pomocą screen -Ri również uzyskać czystą powłokę.
Andreas Riedmüller
15

Tak jak powiedział @Dmitriy:

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

i może użyć ctrl a+ ddo odłączenia ekranu

i użyj, screen -draby ponownie dołączyć ekran (ponieważ jeśli po prostu ponownie dołączysz screen, tekst terminala będzie zniekształcony).

Odniesienie

lub jeśli chcesz wyjść, użyj ctrl + a+ k, a następnie wybierz yzabicie ekranu.

Może
źródło
6

trochę co z wątkiem zombie, ale tak jak właśnie znalazłem tutaj jest inne rozwiązanie, które nie wymaga ekranu ani nie psuje powłoki itp.

Ścieżka wymieniona z pliku docker volume inspect <vol_name>

zwraca ścieżkę do kontenera, na przykład:

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

_dataskładnikiem jest ostatnim elementem ścieżkę konfiguracji w volumes:sekcji usługi przy użyciu danej objętości np:

volumes: - db_data:/var/lib/postgresql/data , obvs Twój przebieg będzie się różnić.

Aby dostać się tam na komputerze Mac, najłatwiejszą metodą, jaką znalazłem, jest uruchomienie małego kontenera i zamontowanie katalogu głównego hosta w /dockerkatalogu na obrazie, co daje dostęp do woluminów używanych na hoście.

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

od tego momentu możesz cd do woluminu

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

lbdl
źródło
1

Ta ścieżka pochodzi z Docker Host (nie z MacOS) przed czasami „Docker for Mac Application”, gdzie była „domyślna” maszyna wirtualna VirtualBox, a wewnątrz tej maszyny wirtualnej istnieje wspomniana ścieżka (na pewno), teraz w czasach „Docker for Mac Application” jest obraz Docker.qcow2, który jest qemu base vm. Aby wskoczyć do tego VM @ mik-jagger, jest w porządku (ale jest kilka więcej)

itiic
źródło
0

Powiedziałbym, że plik:

/var/run/docker.sock

W rzeczywistości jest na:

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

Jeśli to uruchomisz, powinno to udowodnić, o ile twój uruchomiony VirtualBox 5.2.8 lub nowszy, a udział /Volumes jest skonfigurowany jako automatycznie zamontowany i trwały ORAZ wygenerowałeś domyślną maszynę dokującą w tej wersji 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

Następnie uzyskaj dostęp do Portainera pod adresem: 192.168.99.100:9000 lub localhost: 9000

djangofan
źródło
-1

Biegać:

docker run -it --privileged --pid=host debian nsenter -t 1 -a bash
ls /var/lib/docker
Rafael Eyng
źródło