我在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"
}
],
...
此时我完全忘记了数据写入的位置。我错过了什么?
答案 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