【发布时间】:2016-10-24 08:09:00
【问题描述】:
这两个 docker run 命令有什么区别,为什么一个工作而另一个不工作。
工作命令
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:来自守护进程的错误响应:无效的绑定挂载规范“C:UsersUSERNAMEneo4j_testdata:/data”:无效模式:/data。 请参阅“C:\Program Files\Docker Toolbox\docker.exe run --help”。
在非工作命令中,我只是将 $HOME 替换为我的用户配置文件文件夹的绝对路径 C:/Users/USERNAME
更新
我确实通过在 Windows Powershell 上执行 echo $HOME 检查了 $HOME 的值。实际上是C:\Users\USERNAME。我也看过@Titouan Freville 评论过的link。所以我使用了命令
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 的转换发生在哪里
【问题讨论】:
-
您能提供给我们错误信息吗?你应该有一个。如果它是一个未找到的文件,请确保 $HOME == C:/Users/USERNAME 你也应该看看这个帖子:stackoverflow.com/questions/33312662/…。这可能是一个答案。
-
@TitouanFrville 请查看更新:)
-
试试
--volume=C:\/Users\/USERNAME/\neo4j_test/\data:/data -
猜这是 Docker Machine 解释路径的方式。他应该将其转换为与他兼容的类似 linux 的版本;)
标签: docker