使用绝对path与docker运行命令不起作用

这两个docker运行命令之间有什么区别,为什么一个工作,另一个没有。

工作命令

docker run --publish=7474:7474 --volume=$HOME/neo4j_test/data:/data neo4j

不工作

docker run --publish=7474:7474 --volume=C:/Users/USERNAME/neo4j_test/data:/data neoj

docker run --publish=7474:7474 --volume=C:\Users\USERNAME\neo4j_test\data:/data neo4j

这些命令错误

C:\Program Files\Docker Toolbox\docker.exe: Error response from daemon: Invalid bind mount spec "C:UsersUSERNAMEneo4j_testdata:/data": invalid mode: /data. See 'C:\Program Files\Docker Toolbox\docker.exe run --help'.

在非工作命令中,我刚刚用我的用户configuration文件夹C:/Users/USERNAME的绝对pathreplace了$HOME

UPDATE

我通过在Windows Powershell上执行echo $HOME来检查$HOME的值。 实际上是C:\Users\USERNAME 。 我也看了@Titouan Freville评论的链接 。 所以我使用了这个命令

docker run --publish=7474:7474 --volume=/c/Users/USERNAME/neo4j_test/data:/data neo4j

不是

docker run --publish=7474:7474 --volume=C:/Users/USERNAME/neo4j_test/data:/data neoj

现在正在工作。 现在我只是想知道从何处转换$HOMEC:\Users\USERNAME/c/Users/USERNAME

closures主题。 这里是解决scheme;) 在Windows上的Docker工具箱装载文件

而且,docker上的$ HOME的插值必须与它兼容,所以当你在docker命令中调用它的时候,它应该自己进行转换。