Де знаходиться / var / lib / docker на Mac / OS X


139

Шукаю папку /var/lib/dockerна своєму Mac після встановлення docker для Mac.

З docker info я

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

Але у мене немає каталогу /var/lib/dockerпро свого хоста.

Я перевірив, /Users/myuser/Library/Containers/com.docker.docker/але нічого там не міг знайти. Будь-яка ідея, де вона знаходиться?


8
Він розташований усередині vm, який докер створює для забезпечення необхідного середовища Linux.
larsks

1
Може бути, що Файл: /Users/myuser/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2
christian

1
Це зображення диска, що лежить в основі vm, так. Але якщо ви хочете зайнятись вмістом цього каталогу, вам потрібно буде увійти до самого vm. Інструкції щодо цього можна знайти на docs.docker.com/v1.8/installation/mac
larsks

thx, ризикуючи цей файл працює з qemu-img resize Docker.qcow2 + 5g forums.docker.com/t/…
christian

Чи знаєте ви, де знайти цей каталог? @Christian
Jason Xu

Відповіді:


50

Дивіться цю відповідь

Під час використання Docker для Mac додатків виявляється, що контейнери зберігаються у ВМ, розташованому за адресою:

~ / Бібліотека / Контейнери / com.docker.docker / Дані / com.docker.driver.amd64-linux / Docker.qcow2


51
Якщо ви приїхали сюди з Google , прокрутіть униз, щоб знайти правильну відповідь.
користувач1717828

167

Як зазначено у вищенаведених відповідях, ви знайдете їх у:
screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty

Після того, як ви отримаєте tty запуск, до якого можна перейти /var/lib/docker


4
одна незначна модифікація (під вашим домом, не під коренем): "екран ~ / Бібліотека / Контейнери / com.docker.docker / Data / com.docker.driver.amd64-linux / tty"
pdenti

1
Працює! Але як я вийти з цієї оболонки? Ctrl + d, exitі logoutне працюватиме.
thomaskonrad

6
Ви можете відірватися від екрана за допомогою ctrl + a + d
Mik jagger

13
Від'єднання все ще триматиме сеанс роботи на екрані. Ви можете побачити це, запустивши screen -ls. Якщо ви вже від'єдналися, запустіть screen -X quit. Якщо у вас кілька сеансів на екрані, вам потрібно -Sвказати назву сесії. Якщо ви не від'єдналися, натисніть ctrl + a,:, q, u, i, t, ENTER. Ці двоє просто виконують команду виходу з екрану в сеансі.
дозаматмат

15
Я думаю, що він може бути розташований за адресою ~ / Бібліотека / Контейнери / com.docker.docker / Дані / vms / 0 / tty зараз.
Річард Коллетт

57

Інші відповіді тут застаріли, якщо ви використовуєте Docker для Mac.

Ось як мені вдалося потрапити у ВМ. Виконайте команду:

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

Це шлях за замовчуванням, але, можливо, спочатку потрібно: cd ~/Library/Containers/com.docker.docker/Data/vms

і потім ls побачити, в якому каталозі знаходиться ваш VM, і замініть відповідним чином "0".

Коли ви знаходитесь, ви можете просто побачити порожній екран. Натисніть клавішу "Enter".

На цій сторінці пояснюється, що для виходу з VM вам потрібно "Ctrl-a", а потім "d"


Не повністю працює, тому що якщо ви вийдете з VM і введете його знову, ви отримаєте заплутану оболонку.
AbstractVoid

2
Це не працює для мене. Я закінчую переплутаною оболонкою. Я пройшов і вбив попередні сеанси екрану, а потім спробував ще раз. При натисканні клавіші Enter я отримую випадкових символів. якщо ви знову натисніть Enter, нові випадкові символи. І так далі
Steig Hallquist

1
щоб вийти з екранної програми, використовуйте ctl-a, тоді ctl- \ /var/lib/dockerє у VM, де ви після запуску screen, наприклад, ls /var/lib/dockerтощо.
Олексій Мартьянов

1
Я позбулася брудної оболонки , screen -lsа потім screen -X -S SESSION_NAME quitдля кожної сесії. Якщо ви від'єднаєтеся з ctr-A, то D ви можете знову підключитися до екрана screen -Rта отримати чисту оболонку.
Andreas Riedmüller

13

Так, як сказав @Dmitriy:

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

і може використовувати ctrl a+d для від'єднання екрана

і скористайтеся screen -drдля того, щоб знову приєднати екран (оскільки, якщо ви просто знову прикріпите екран, текст терміналу буде зіпсований).

Довідково

або якщо ви хочете вийти, використовуйте ctrl + a+ k, а потім виберіть, yщоб вбити екран.


5

дещо із зомбі-потоку, але, як я щойно знайшов це, є ще одне рішення, яке не потребує екрану, ні псує оболонку тощо.

Шлях, перелічений із а docker volume inspect <vol_name>

повертає шлях до контейнера, наприклад:

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

_dataкомпонент є останнім компонентом шляху ви налаштуєте в volumes:розділі сервісу , використовуючи заданий обсяг , наприклад:

volumes: - db_data:/var/lib/postgresql/data , звичайно ваш пробіг буде відрізнятися.

Щоб потрапити на mac, найпростіший я знайдений метод - це фактично запустити невеликий контейнер, що працює, і встановити корінь хоста до /dockerкаталогу на зображенні, це дає вам доступ до томів, використовуваних на хості.

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

з цього моменту ви можете записати на гучність

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


1

Цей шлях походить від Docker Host (а не з MacOS), перед тим як "Docker для Mac Application", коли де був "за замовчуванням" VirtualBox VM, і всередині цього VM згаданий шлях існує (точно), тепер у часи "Докер для Mac додатків" є зображення Docker.qcow2, яке є базовою базою qemu. Застрибнути в цей спосіб VM @ mik-jagger - це нормально (але є ще кілька)


0

Я б сказав, що файл:

/var/run/docker.sock

Насправді за адресою:

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

Якщо ви запускаєте це, це повинно доводити, доки ваш запущений VirtualBox 5.2.8 або пізнішої версії, і частка для цього /Volumes буде встановлена ​​автоматично і постійною, і ви створили докер-машину за замовчуванням під час роботи з цією версією 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

Потім перейдіть до Portainer за номером: 192.168.99.100:9000 або localhost: 9000

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.