Docker Desktop Volume 挂载


当使用 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 中显示。