使用绝对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
现在正在工作。 现在我只是想知道从何处转换$HOME
从C:\Users\USERNAME
到/c/Users/USERNAME
closures主题。 这里是解决scheme;) 在Windows上的Docker工具箱装载文件
而且,docker上的$ HOME的插值必须与它兼容,所以当你在docker命令中调用它的时候,它应该自己进行转换。