9

我在 OS X 上运行 Docker 1.11,并试图找出我的本地卷的写入位置。我通过运行创建了一个 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"
    }
],
...

在这一点上,我完全不知道数据的写入位置。我错过了什么?

4

2 回答 2

14

由于 Docker 基于 Linux,它不能直接在 Windows/OS X 上运行,而是在运行 Linux 操作系统的 VirtualBox 虚拟机(Docker Machine)中运行。这就是为什么在安装 Docker Toolbox 时会看到 VirtualBox 已安装。

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

docker-machine ssh default

default是默认 Docker 机器的名称。

于 2016-04-24T23:42:14.707 回答
2

码头工人 19.3.8

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

之后它起作用了。

$ mkdir volume_database
$ docker container run -it \
--volume=/volume_database:/volume_database debian
于 2020-12-17T09:38:54.243 回答