Где находится / var / lib / docker в Mac / OS X

139

Я ищу папку /var/lib/dockerна своем Mac после установки докера для 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
Он расположен внутри виртуальной машины, которую docker создает для обеспечения необходимой среды Linux.
larsks
1
Может быть , что файл: /Users/myuser/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2
христианский
1
Это образ диска, лежащий в основе виртуальной машины, да. Но если вы хотите возиться с содержимым этого каталога, вам нужно будет войти в саму виртуальную машину. Вы можете найти инструкции для этого на docs.docker.com/v1.8/installation/mac
larsks
спасибо, увеличение этого файла работает с qemu-img resize Docker.qcow2 + 5g forum.docker.com/t/…
christian
Вы знаете, где найти этот каталог? @Christian
Джейсон Сюй

Ответы:

50

Смотрите этот ответ

При использовании приложения Docker для Mac кажется, что контейнеры хранятся в виртуальной машине, расположенной по адресу:

~ / Library / Контейнеры / com.docker.docker / Data / com.docker.driver.amd64-линукс / Docker.qcow2

PeterM
источник
51
Если вы пришли сюда из Google , прокрутите вниз, чтобы найти правильный ответ.
user1717828
167

Как упоминалось в ответах выше, вы найдете его в:
screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty

Как только вы запустите tty, вы можете перейти к /var/lib/docker

Мик Джаггер
источник
4
одна небольшая модификация (ниже вашего дома, а не ниже корневого): "screen ~ / Library / Containers / com.docker.docker / Data / com.docker.driver.amd64-linux / tty"
pdenti 01
1
Работает! Но как мне выйти из этой оболочки? Ctrl + d`` exitи logoutработать не будет.
thomaskonrad
6
Вы можете отсоединиться от экрана с помощью Ctrl +
A
13
Отключение будет продолжать сеанс экрана. В этом можно убедиться, запустив screen -ls. Если вы уже отсоединились, бегите screen -X quit. Если у вас есть несколько сеансов экрана, вам нужно -Sуказать имя сеанса. Если вы еще не отсоединились, нажмите ctrl + a,:, q, u, i, t, ENTER. Эти двое просто запускают команду выхода из экрана в сеансе.
dosentmatter
15
Я думаю, что теперь он может находиться в ~ / Library / Containers / com.docker.docker / Data / 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посмотреть, в каком каталоге находится ваша виртуальная машина, и соответственно заменить «0».

Когда вы внутри, вы можете просто увидеть пустой экран. Нажмите клавишу «Ввод».

Эта страница объясняет, что для выхода из виртуальной машины вам нужно нажать «Ctrl-a», а затем «d».

Дмитрий
источник
Не полностью работает, потому что если вы выйдете из виртуальной машины и войдете в нее снова, вы получите испорченную оболочку.
AbstractVoid
2
Это не работает для меня. Я получаю испорченную оболочку. Я прошел и убил предыдущие сеансы экрана, а затем попробовал снова. При нажатии Enter я получаю случайные символы. если вы снова нажмете Enter, новые случайные символы. И так далее
Steig Hallquist
1
для выхода из экранной программы используйте ctl-a, затем ctl- \ /var/lib/dockeris in VM, где вы находитесь после запуска screen, например, ls /var/lib/dockerи т. д.
Алексей Мартьянов
1
Я избавилась от грязной оболочки , screen -lsа затем screen -X -S SESSION_NAME quitдля каждой сессии. Если вы отключитесь с помощью ctr-A, затем D, вы можете повторно подключиться к экрану с помощью screen -Rи получить чистую оболочку.
Андреас Ридмюллер,
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

lbdl
источник
1

Этот путь исходит от хоста Docker (не из MacOS) до времен «Docker for Mac Application», где была виртуальная машина VirtualBox «по умолчанию» и внутри этой виртуальной машины указанный путь существует (наверняка), теперь во временах «Docker для Mac Application» есть образ Docker.qcow2, который является базой vm qemu. Прыгать внутрь этой виртуальной машины @ mik-jagger можно (но есть еще несколько)

itiic
источник
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.

djangofan
источник