【问题标题】:Using Docker via Windows console: includes invalid characters $PWD for a local volume name通过 Windows 控制台使用 Docker:包含本地卷名的无效字符 $PWD
【发布时间】:2016-06-16 12:40:46
【问题描述】:

我尝试通过 Windows 控制台 (Windows 10) 使用 Docker 运行 Python 程序。

我已经让 Windows 控制台能够支持 DockerHello, World!

但是当我跑步时:

 docker run -it --rm --name my-running-script -v "$PWD":/usr/src/myapp -w /usr/src/myapp python:2 python test.py

我得到错误:

docker:来自守护进程的错误响应:创建 $PWD:卷名无效:
"$PWD" 包括本地卷名的无效字符,仅 允许使用“[a-zA-Z0-9][a-zA-Z0-9_.-]”。

请参阅“docker run --help”。

通过 Docker 快速启动终端运行相同的代码时,它运行良好。

我试过了,但我无法解决。我该怎么做?

【问题讨论】:

标签: python windows docker


【解决方案1】:

我认为,在 Windows 中替换 Linux 命令$(pwd)"%cd%"

所以,试试下面可能对你有帮助的命令。

docker run -it --rm --name my-running-script -v "%cd%":/usr/src/myapp -w /usr/src/myapp python:2 python test.py

【讨论】:

  • 假设是 CMD 窗口而不是 PowerShell 窗口?
  • 是的。不过,我没有在 powershell 上进行测试。
  • 它对我有用。看来指南 localhost/tutorial/using-bind-mounts 是为 Linux 编写的。
  • "%cd%" 救了我的命。哈哈。
【解决方案2】:

阅读文档:Manage data in containers

如果您在 Mac 或 Windows 上使用 Docker Machine,则您的 Docker 守护程序只能有限地访问您的 OS X 或 Windows 文件系统。 Docker Machine 尝试自动共享您的 /Users (OS X) 或 C:\Users (Windows) 目录。

因此,您可以使用以下方法在 OS X 上挂载文件或目录:

docker run -v /Users/<path>:/<container path> ...

在 Windows 上,使用以下方式挂载目录:

docker run -v /c/Users/<path>:/<container path> ...`

我的 Docker 机器是在 Windows 上,所以不是 ' "$PWD" ' 像:

docker run -it --rm --name my-running-script -v "$PWD":/usr/src/myapp -w /usr/src/myapp python:2 python test.py

使用“/c/Users/your_name”之类的:

docker run -it --rm --name my-running-script -v /c/Users/cn_pa:/usr/src/myapp -w /usr/src/myapp python:2 python test.py

【讨论】:

  • 文档链接已损坏,“抱歉,我们找不到该页面”
【解决方案3】:

如果您在 Windows 上使用 bash 命令行,则只需在 $ PWD 之前放置 / 即可。比如:

docker run -v /$PWD:/src

【讨论】:

    【解决方案4】:

    这在 Powershell 中确实对我有用。

    docker run -p 8080:3000 -v ${pwd}:/var/www -w "/var/www" node npm start
    

    【讨论】:

      【解决方案5】:

      不知道您是否已经使用已经提供的解决方案修复了它,但我的解决方法是 windows 不读取手镯 $(pwd)${pwd} 帮了我大忙。

      【讨论】:

        猜你喜欢
        • 2020-02-21
        • 1970-01-01
        • 2022-07-27
        • 2019-01-24
        • 1970-01-01
        • 2023-04-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多