通过Windows控制台使用Docker:包含本地卷nam的无效字符

2024-05-14 06:00:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图通过Windows控制台(Windows 10)用Docker运行一个Python程序。

我已经让Windows控制台能够实现Docker你好,世界!

但是当我跑的时候:

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

我知道错误:

docker: Error response from daemon: create $PWD: volume name invalid:
"$PWD" includes invalid characters for a local volume name, only "[a-zA-Z0-9][a-zA-Z0-9_.-]" are allowed.

See 'docker run --help'.

通过Docker Quickstart终端运行相同代码时,运行良好。

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


Tags: dockerrunname程序srcwindowsusrpwd
3条回答

阅读文档:Manage data in containers

如果您在Mac或Windows上使用Docker机器,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

我认为,Linux命令在Windows中的替代是$(pwd)

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

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

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

相关问题 更多 >