返回

Windows 控制台 Docker 本地卷路径无效字符问题详解及解决方案

windows

如何在 Windows 控制台中使用 Docker:解决本地卷路径中包含无效字符的问题

问题

在 Windows 控制台环境中使用 Docker 时,为本地卷分配路径名可能会遇到错误。如果您尝试使用 -v "$PWD":/usr/src/myapp 命令映射本地卷,您可能会收到以下错误消息:

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'.

此错误表明本地卷的路径名中包含 Windows 系统中无效的字符 $

解决方案

要解决此问题,请按照以下步骤操作:

步骤 1:获取当前工作目录

要获取当前工作目录的路径,请在命令提示符下运行以下命令:

cd
pwd

步骤 2:将路径映射到容器

使用从步骤 1 中获得的当前工作目录路径替换 -v "$PWD":/usr/src/myapp 命令。确保路径中不包含空格。如果路径包含空格,请使用引号将其括起来。

示例

假设当前工作目录为 /Users/john/my-project,则修改后的命令如下:

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

注意事项

  • 确保 Docker 已安装且正在运行。
  • 确保已正确配置 Docker Quickstart 终端。
  • 如果问题仍然存在,请尝试重新启动 Docker 服务。

常见问题解答

Q1:为什么本地卷路径不能包含 $ 字符?

A1:Windows 系统中,$ 字符被用作变量扩展,因此不能用作本地卷路径的一部分。

Q2:如何避免使用 $ 字符?

A2:您可以使用 cdpwd 命令获取当前工作目录的路径,或者使用不包含 $ 字符的绝对路径。

Q3:为什么需要在本地卷路径中使用 -v 标志?

A3:-v 标志用于在容器和主机之间映射卷。它允许容器访问主机文件系统上的文件和目录。

Q4:如何使用 Docker Quickstart 终端?

A4:Docker Quickstart 终端是一个预配置的命令提示符环境,用于简化 Docker 使用。要使用它,请在 Windows 搜索栏中搜索 "Docker Quickstart 终端" 并将其打开。

Q5:如何重新启动 Docker 服务?

A5:要重新启动 Docker 服务,请在命令提示符下运行以下命令:

net stop docker
net start docker