【问题标题】:Using absolute path with docker run command not working使用带有 docker run 命令的绝对路径不起作用
【发布时间】: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

它现在正在工作。现在我只是想知道$HOMEC:\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


【解决方案1】:

对于仍然遇到 Docker-for-Windows 问题的任何人,这里有 2 个可行的解决方案:

为您的命令添加前缀

MSYS_NO_PATHCONV=1

全文MSYS_NO_PATHCONV=1 docker run -v /c/path:/path

使用双斜线

//开头

全文docker run -v //c/path:/path


来源:https://github.com/moby/moby/issues/24029#issuecomment-250412919

【讨论】:

    【解决方案2】:

    关闭主题。这是解决方案;)docker toolbox mount file on windows

    另外,windows上docker对$HOME的插值需要兼容,所以在docker命令中调用的时候需要自己转换。

    【讨论】:

    • 只是对此答案的补充说明。驱动器号应为小写。例如这将工作/c/Users/USERNAME 而这不会/C/Users/USERNAME
    • 如果在 windows 上使用 git-bash 添加一个额外的斜线,即:-v /c/path:/path to -v //c/path:/path
    • 或者在 docker 教程的情况下:docker run -dp 3000:3000 -w //c/path/to-docker-tutorial/getting-started/app -v "$(pwd):/app" node:12-alpine sh -c "yarn install && yarn run dev" - 所以,还有工作目录的额外斜杠
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-04
    • 2015-08-29
    • 1970-01-01
    相关资源
    最近更新 更多