Где находится / 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


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


1

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