我正在遵循使用Docker的本教程。当我试图运行Docker(在run.sh脚本中):

docker run \
    -p 8888:8888 
    -v `pwd`/../src:/src \
    -v `pwd`/../data:/data -w /src supervisely_anpr \
    --rm \
    -it \
    bash

我得到了错误:

docker: invalid reference format.

我花了两个小时,我真的不明白哪里出了问题。任何想法都非常感谢。


当前回答

我在一行中执行了整个命令,正如上面提到的那样

$ docker run --name testproject-agent \
-e TP_API_KEY="REPLACE_WITH_YOUR_KEY" \
-e TP_AGENT_ALIAS="My First Agent" \
testproject/agent:latest

但它应该是一个多行命令,我一行一行地复制命令行,并在每一行之后按enter键,砰!它工作。

有时当你复制网页时,新行字符会被省略,因此我建议尝试手动引入新行。

其他回答

我在一行中执行了整个命令,正如上面提到的那样

$ docker run --name testproject-agent \
-e TP_API_KEY="REPLACE_WITH_YOUR_KEY" \
-e TP_AGENT_ALIAS="My First Agent" \
testproject/agent:latest

但它应该是一个多行命令,我一行一行地复制命令行,并在每一行之后按enter键,砰!它工作。

有时当你复制网页时,新行字符会被省略,因此我建议尝试手动引入新行。

我在通过powershell使用$(pwd)时遇到了同样的问题,我用${pwd}替换了它,它为我工作。

以下是相同的细节:

PS C:\Users\Systems\git\mastery\dockerfile> docker container run -d --name nginx -p 8080:80 -v $(pwd):/usr/share/nginx/html nginx
docker: invalid reference format.
See 'docker run --help'.

PS C:\Users\Systems\git\mastery\dockerfile> docker container run -d --name nginx -p 8080:80 -v ${pwd}:/usr/share/nginx/html nginx
Unable to find image 'nginx:latest' locally
latest: Pulling from library/nginx
Digest: sha256:25975292693bcc062becc20a1608936927f9950a42fb4474088f6292dacd4ec9
Status: Downloaded newer image for nginx:latest
f6ff08ed3b73095e85474bd2f248a7cae6b5bcdb53e12e4824d235df3cd268aa

如果其他人击中它,则导致此错误的另一个变体是由路径规范上的末尾/或\引起的。

即-v c:\mystuff:c:\mappedfolder工作

但是:-v c:\mystuff\:c:\mappedfolder没有

“我的东西”后面哪里多了一个“\”

如果您使用的是Windows,在CMD而不是PowerShell上运行它。

我在Linux上也遇到了同样的问题。这是因为目录名中包含空格。我通过使用“$(pwd)/path/to/go”而不是$(pwd)/path/to/go来修复它