Том подключения Docker не существует

Я использую Docker 1.11 на OS X и пытаюсь выяснить, где пишутся мои локальные тома. Я создал том Docker, запустив docker volume create --name mysql, Я тогда побежал docker volume inspect mysql и это выдает следующее:

[
    {
        "Name": "mysql",
        "Driver": "local",
        "Mountpoint": "/mnt/sda1/var/lib/docker/volumes/mysql/_data",
        "Labels": {}
    }
]

Вопрос /mnt/sda1/var/lib/docker/volumes/mysql/_data на самом деле не существует на моей машине. Я подумал, что, возможно, проблема была в том, что он на самом деле не создавался, пока не был использован контейнером, поэтому я запустил контейнер, запустив docker run --name mysql -v mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=mysql -P -d mysql:5.7 и затем создал базу данных в MySQL, но точка монтирования все еще не существует. Я даже побежал docker inspect mysql чтобы убедиться, что он использует правильный объем и получил следующее:

...
"Mounts": [
    {
        "Name": "mysql",
        "Source": "/mnt/sda1/var/lib/docker/volumes/mysql/_data",
        "Destination": "/var/lib/mysql",
        "Driver": "local",
        "Mode": "z",
        "RW": true,
        "Propagation": "rprivate"
    }
],
...

На данный момент я полностью потерян, где данные пишутся. Что мне не хватает?

2 ответа

Решение

Поскольку Docker основан на Linux, он не может работать непосредственно в Windows/OS X. Вместо этого он работает внутри виртуальной машины VirtualBox (Docker Machine), на которой работает операционная система Linux. Вот почему, когда вы устанавливаете Docker Toolbox, вы видите, что VirtualBox установлен.

Чтобы увидеть файлы и папки внутри этой виртуальной машины, используйте

docker-machine ssh default

default это имя Docker Machine по умолчанию.

Докер 19.3.8

Я изменил точку монтирования для папки, которую создал на своем Mac.

После этого заработало.

      $ mkdir volume_database
$ docker container run -it \
--volume=/volume_database:/volume_database debian
Другие вопросы по тегам