Docker 卷挂载不存在

Docker volume mount doesn't exist

我是 运行 Docker 1.11,在 OS X 上,我正在尝试找出我的本地卷的写入位置。我通过 运行 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"
    }
],
...

此时我完全不知道数据写入的位置。我错过了什么?

因为Docker是基于Linux的,它不能运行直接在Windows/OSX上。相反,它运行在VirtualBox虚拟机中(Docker 机器)运行 是 Linux 操作系统。这就是为什么当您安装 Docker Toolbox 时您会看到 VirtualBox 已安装。

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

docker-machine ssh default

default 是默认 Docker 机器的名称。

Docker 19.3.8

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

之后就成功了。

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