Docker 命令返回"invalid reference format"



我正在使用docker并使用以下命令:

docker run -d -p 9090:80 -v $(pwd):/usr/share/nginx/html nginx:alpine

指向我的/dist文件夹,其中我的应用程序文件由 Angular 编译。

我首先转到/dist文件夹,然后从那里运行命令。这工作正常,我能够通过端口访问该应用程序:9090,但是在 docker 更新后,我错误地运行:

码头工人:引用格式无效。 请参阅"docker run --help"。

我一直在搜索并检查以下发布 docker :无效的参考格式,但它似乎与我的问题不同。 以下是基于命令的信息:docker version

Client:
Version:      17.09.0-ce
API version:  1.32
Go version:   go1.8.3
Git commit:   afdb6d4
Built:        Tue Sep 26 22:40:09 2017
OS/Arch:      darwin/amd64
Server:
Version:      17.09.0-ce
API version:  1.32 (minimum version 1.12)
Go version:   go1.8.3
Git commit:   afdb6d4
Built:        Tue Sep 26 22:45:38 2017
OS/Arch:      linux/amd64
Experimental: false

请问有什么想法吗?

Docker 在映像名称之前看到一些意外的东西,让它认为你的命令中除了nginx:alpine之外的东西是你的镜像名称。这可能是每个选项之前的无效-,通常通过从 Web 复制/粘贴看到。它也可能是你路径上的一个空间。如果它像路径中的空格一样简单,那么引用它将解决这个问题:

docker run -d -p 9090:80 -v "$(pwd):/usr/share/nginx/html" nginx:alpine

如果上述两个不能解决您的问题,请首先确保以下工作:

docker run nginx:alpine

然后将单个参数添加回命令中,直到找到破坏它的参数。特别注意参数的顺序,要run的参数必须在run和映像名称之间。映像名称后面的参数作为要运行的命令传递。run之前的参数是docker顶级命令的选项。

您的 $(pwd) 包含不喜欢的字符(例如空格)。尝试在其周围使用引号:

docker run -d -p 9090:80 -v "$(pwd):/usr/share/nginx/html" nginx:alpine

对我来说,发生这种情况是因为我把名字留空了。在构建时使用-t somename设置名称

似乎您在某处的名称无效。您是否尝试输出pwd

尝试使用静态路径更改pwd

看看它也可能对您有所帮助的文档 https://docs.docker.com/v1.10/engine/reference/commandline/run/#mount-volume-v-read-only

这个答案特定于 Google Cloud 的计算引擎(VM 实例)。

在虚拟机设置中指定要使用的映像容器时,在容器输入的末尾显式包含:latest标记会导致引用格式无效错误。

所以我不得不把这个:gcr.io/project/container

不是这个:gcr.io/project/container:latest

如果您从命令行管理程序脚本中运行 docker 命令,则启用详细模式将有助于查找问题。

设置 -x

设置 -v

我也遇到了这个问题,在调试时发现图像标签以 CR 字符结尾,因此我得到了"无效的参考格式"。

您可以运行以下命令:

docker run -d -p 9090:80 -v $(pwd):/usr/share/nginx/html nginx:alpine

而不是$(pwd)如果您的操作系统是 Windows,请使用${pwd}

相关内容

最新更新