Docker mount vol error: includes invalid characters for a local volume name

Docker mount vol error: includes invalid characters for a local volume name

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

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.

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

docker run \
    -p 5000:5000 \
    --mount type=volume,source=/Users/jake/Desktop/source,target=/data \
    --name testvol test

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

docker run \
    -p 5000:5000 \
    --mount type=bind,source=/Users/jake/Desktop/source,target=/data \
    --name test test

[更新]

我正在使用 macOS Big Sur,Docker v3.2.2。

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

来自文档:

Volumes are the preferred mechanism for persisting data generated by and used by Docker containers. While bind mounts are dependent on the directory structure and OS of the host machine, volumes are completely managed by Docker.

Bind mounts 用于将主机上的目录映射到容器中的目录。

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