无法在适用于 Windows 的 Docker Desktop 中装载驱动器 d:\ 或 e:\ 的卷

meD*_*Dev 3 docker docker-volume docker-container docker-desktop

在互联网和 Stackoverflow 上搜索了此内容但没有成功

在 Windows 10 上使用 Docker for Desktop 版本 4.12.0,并以 WSL2 作为后端。

在 Windows 命令提示符窗口中,以下内容有效并列出 c:/data 中的文件

docker run --rm -v c:/data:/target alpine ls /target 
Run Code Online (Sandbox Code Playgroud)

但以下都不起作用。/target 目录始终为空!

docker run --rm -v d:/data:/target alpine ls /target 

docker run --rm -v "d:/data:/target" alpine ls /target

docker run --rm -v "d:/data":/target alpine ls /target 

docker run --rm -v /mnt/d/data:/target alpine ls /target

docker run --rm -v /run/desktop/host/d/data:/target alpine ls /target 

docker run --rm -v "/run/desktop/host/d/data:/target" alpine ls /target
Run Code Online (Sandbox Code Playgroud)

但是,在 WSL 2 终端窗口中,以下命令可以工作并列出 /target 目录下的文件!

docker run --rm -v /mnt/d/data:/target alpine ls /target
Run Code Online (Sandbox Code Playgroud)

但我想使用适用于 Windows 的 Docker Desktop 并使用 Windows 命令提示符。最终,我想在 docker-compose.yml 中安装卷。

根据过去 StackOverflow 的答案,上述一些命令似乎适用于不同的人。不知道是否是因为 Docker for Desktop 版本不同,或者不清楚他们是否在 WSL2 终端窗口或 Windows 命令提示符窗口中进行尝试。

ara*_*ran 6

您面临着Microsoft 关于 Docker 卷的限制

我们支持映射整个第二个驱动器号,但目前不支持映射其中的一部分


您必须安装完整的 d 驱动器,如下所示d:

其他选项(例如根 ( d:\) 或路径 ( d:\somefolder))不适用于第二个驱动器。

就您而言,这意味着执行以下操作:

docker run -it -v d: alpine ls /d/data
Run Code Online (Sandbox Code Playgroud)

如果这会在容器内创建一个空的 d 文件夹,则意味着您遇到了驱动器内的权限问题。


请注意,即使问题评论来自 2016 年,似乎限制仍然存在......