Docker卷安装不存在

时间:2016-04-24 23:25:50

标签: docker docker-volume

我在OS X上运行Docker 1.11,我正在试图找出我的本地卷的写入位置。我通过运行docker volume create --name mysql创建了一个Docker卷。然后我运行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 个答案:

答案 0 :(得分:9)

由于Docker基于Linux,因此无法直接在Windows / OS X上运行。而是在运行Linux操作系统的VirtualBox虚拟机(Docker Machine)内运行。这就是为什么当您安装Docker Toolbox时,您会看到安装了VirtualBox。

要查看此虚拟机中的文件和文件夹,请使用

docker-machine ssh default

default是默认Docker Machine的名称。

答案 1 :(得分:0)

Docker 19.3.8

我已经更改了在Mac中创建的文件夹的挂载点。

此后它起作用了。

$ mkdir volume_database
$ docker container run -it \
--volume=/volume_database:/volume_database debian