Docker 安装卷错误:包含本地卷名称的无效字符

Jak*_*ake 3 mount docker

关于同样的错误消息有很多问题,如下所示,但我仍然找不到解决方案。

docker: Error response from daemon: create /Users/siyang/Desktop/source: 
"/Users/Jake/Desktop/source" includes invalid characters for a local volume name, 
only "[a-zA-Z0-9][a-zA-Z0-9_.-]" are allowed. 
If you intended to pass a host directory, use absolute path.
Run Code Online (Sandbox Code Playgroud)

这是我运行的 docker 命令。我使用的是绝对路径和允许的字符。

docker run \
    -p 5000:5000 \
    --mount type=volume,source=/Users/jake/Desktop/source,target=/data \
    --name testvol test
Run Code Online (Sandbox Code Playgroud)

令人惊讶的是,当我使用相同的命令进行绑定安装时,它运行良好。

docker run \
    -p 5000:5000 \
    --mount type=bind,source=/Users/jake/Desktop/source,target=/data \
    --name test test
Run Code Online (Sandbox Code Playgroud)

[更新]

我使用的是 macOS Big Sur,Docker v3.2.2。

ten*_*ive 8

如果您打算将主机目录映射到容器,则不应使用卷挂载。我认为卷安装没有达到您的预期。

来自文档:

卷是持久保存 Docker 容器生成和使用的数据的首选机制。虽然绑定挂载取决于主机的目录结构和操作系统,但卷完全由 Docker 管理。

绑定挂载用于将主机上的目录映射到容器中的目录。

卷挂载用于映射现有的 Docker 卷(即使用 创建docker volume create VOLUMENAME)。Docker 卷不能包含/在名称中。