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

k.v*_*ent 16 docker

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

docker run -d -p 9090:80 -v $(pwd):/usr/share/nginx/html nginx:alpine
Run Code Online (Sandbox Code Playgroud)

指向我的/dist文件夹,我的app文件由angular编译.

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

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
Run Code Online (Sandbox Code Playgroud)

有什么好主意吗?

BMi*_*tch 20

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

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

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

docker run nginx:alpine
Run Code Online (Sandbox Code Playgroud)

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

  • "看到意外的东西"的例子:一个实际上不是*空间但是不易破空间的空间:/sf/answers/194215521/.另一个:' - '不是' - ':/sf/answers/11910391/ (3认同)
  • 是的,引用解决了问题。伟大的。你们似乎都知道这与道路有关。就我而言,它包含破折号“-”和数字“5”。通过引用可以解决问题。抱歉,当我没有发布文件夹的真实路径时,我错过了它!我的错。 (2认同)

omk*_*kar 6

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

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