docker 中的“引用”是指向图像的指针。它可以是镜像名称、镜像 ID、在名称中包含注册服务器、使用 sha256 标记固定镜像,以及可用于指向您要运行的镜像的任何其他内容。
invalid reference format 错误消息意味着 docker 无法将您提供的字符串转换为图像。这可能是一个无效的名称,或者它可能来自之前 docker run 命令行中的解析错误,如果这是您运行映像的方式。
如果名称本身无效,repository name must be lowercase 表示您在注册表或存储库名称中使用大写字符,例如YourImageName:latest 应该是 yourimagename:latest。
在使用docker run 命令行时,这通常会导致没有用空格引用参数、缺少参数的值以及错误的命令行顺序。命令行顺序如下:
docker ${args_to_docker} run ${args_to_run} image_ref ${cmd_to_exec}
将 args 传递给运行时最常见的错误是卷映射扩展了包含空格的路径名,并且没有引用路径或转义空格。例如
docker run -v $(pwd):/data image_ref
如果您在目录/home/user/Some Project Dir 中,那将在您的容器中定义一个匿名卷/home/user/Some,并尝试使用命令Dir:/data image_ref 运行Project:latest。解决方法是引用参数:
docker run -v "$(pwd):/data" image_ref
其他常见的遗漏引用的地方包括环境变量:
docker run -e SOME_VAR=Value With Spaces image_ref
哪个 docker 会解释为试图运行图像With:latest 和命令Spaces image_ref。同样,解决方法是引用环境参数:
docker run -e "SOME_VAR=Value With Spaces" image_ref
对于撰写文件,如果您在图像名称中展开变量,则该变量可能无法正确展开。所以如果你有:
version: 2
services:
app:
image: ${your_image_name}
然后仔细检查your_image_name 是否定义为全小写字符串。