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

新手上路,请多包涵

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

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

指向我的 /dist 我的应用程序文件由 angular 编译的文件夹。

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

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

请问有什么想法吗?

原文由 k.vincent 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.4k
2 个回答

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

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

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

 docker run nginx:alpine

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

原文由 BMitch 发布,翻译遵循 CC BY-SA 3.0 许可协议

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

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

原文由 omkar 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏