Docker挂载卷错误:包含本地卷名称无效字符

3

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

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。


这是一个Unix还是Windows主机? - im_baby
刚刚在帖子中更新,使用的是macOS。 - Jake
1个回答

7
如果您想将主机目录映射到容器中,则不应使用卷挂载。我认为卷挂载并没有达到您的预期效果。
根据文档:
卷是持久化 Docker 容器生成和使用的数据的首选机制。虽然绑定挂载依赖于主机机器的目录结构和操作系统,但卷完全由 Docker 管理。 绑定挂载 用于将主机上的目录映射到容器中的目录。 卷挂载 用于映射现有的 Docker 卷(即使用 docker volume create VOLUMENAME 创建的卷)。Docker 卷名称不能包含 /

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接