当使用 Docker Desktop 在 Powershell 中执行 Docker 如下命令时:
docker run -it -v ./vol:/mnt python:3.7-alpine bin/sh
我们的目的是希望将当前目录下的 vol 文件家挂载到容器中,但是虽然这个命令可以正常地执行,而且我们可以正常的在容器 /mnt 目录下写入文件 例如:test.py,但是我们却无法在当前目录下的 vol 如预期的看到 test.py 文件。 也就是说,并没有实际把“当前目录下的vol文件夹”挂载。
使用docker volume ls
查看,发现出现了一个挂载卷,vol
使用docker volume inspect vol
查看。
[
{
"CreatedAt": "2020-03-14T06:24:57Z",
"Driver": "local",
"Labels": null,
"Mountpoint": "/var/lib/docker/volumes/vol/_data",
"Name": "vol",
"Options": null,
"Scope": "local"
}
]
可以看到 volume 的实际挂载点是 "/var/lib/docker/volumes/vol/_data"
那么如何挂载到本地呢?
使用如下命令:
docker run -it -v /c/Users/FurtherGazer/Desktop/vol:/mnt python:3.7-alpine bin/sh
这里的区别在于,使用挂载的本地目录,不是相对路径,而是绝对路径。
/c/Users/FurtherGazer/Desktop/vol 对应 C:\Users\FurtherGazer\Desktop\vol
使用上述方法创建的本地目录挂载,不会在 docker volume 中显示。