我正在遵循使用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构建。

结果证明,我只需要指定标记名称,否则就没有名称可使用

Docker构建。- t image_name

然后就成功了。

其他回答

我删除了()并像这样为我工作 Docker运行-d -v $pwd/envoy.yaml:/etc/envoy/envoy。Yaml:ro -p 8080:8080 -p 9901:9901 我用的是windows 10

其他人来这里: 如果您碰巧将docker命令放在一个文件中,例如run.sh,请检查行分隔符。在Linux中,它应该是LR,否则您将得到相同的错误。

只是提醒一下:如果你路径中的任何文件夹中有空格,请删除它。例如,如果其中一个文件夹的名称是my文件夹,则将其更改为my-folder。

如果你在windows PowerShell中运行脚本,你需要用花括号将$(pwd)替换为${pwd}。

我在通过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