Docker命令返回“无效的引用格式”

pn9klfpd  于 2022-11-03  发布在  Docker
关注(0)|答案(6)|浏览(257)

我使用的是docker和以下命令:

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

指向我的/dist文件夹,我的应用程序文件是由angular编译的。
我首先进入/dist文件夹,然后从那里运行命令。这运行得很好,我能够通过端口到达应用程序:9090,但在Docker更新后,我运行时出错:
docker:无效的引用格式。请参阅“docker run --help”。
我一直在搜索和检查下面的张贴docker : invalid reference format,但它似乎是不同的,我的问题。这里是信息的基础上的命令: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

有什么想法吗?

pqwbnv8z

pqwbnv8z1#

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顶级命令的选项。

qlckcl4x

qlckcl4x2#

您的$(pwd)包含不喜欢的字符(例如空格)。请尝试使用引号将其括起来:
docker run -d -p 9090:80 -v "$(pwd):/usr/share/nginx/html" nginx:alpine

cwdobuhd

cwdobuhd3#

似乎您在某处有一个无效的名称。您是否尝试输出pwd
尝试使用静态路径更改pwd
请查看文档,它可能也会对您有所帮助https://docs.docker.com/v1.10/engine/reference/commandline/run/#mount-volume-v-read-only

neekobn8

neekobn84#

对我来说,发生这种情况是因为我把名称留空了。

vd8tlhqk

vd8tlhqk5#

  • 此答案特定于Google云的计算引擎(虚拟机示例)。*

在VM设置中指定要使用的映像容器时,在容器输入的末尾显式包含:latest标记会导致 * 无效引用格式错误。*
所以我只好把这一点:gcr.io/project/container
不是这个:gcr.io/project/container:latest

fxnxkyjh

fxnxkyjh6#

如果您是从Shell脚本中运行docker命令,则启用详细模式将有助于查找问题。
集合-x
设置-v
我也遇到了这个问题,在调试时发现图像标记以CR字符结束,正因为如此,我得到了“无效的引用格式”。

相关问题