我正在遵循使用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.sh,请检查行分隔符。在Linux中,它应该是LR,否则您将得到相同的错误。

其他回答

我也遇到过类似的问题。 我遇到的问题是$(pwd)有一个空间在那里抛出码头运行。

将目录名更改为不包含空格,如果这是问题所在,它应该可以工作

在我的情况下,问题是在完整的路径文件夹与回购,我使用终端和docker。我是这样的: 回购(1)/回购 将文件夹重命名为 回购/回购 它会有所帮助

在powershell中,您应该使用${pwd}而不是$(pwd)

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

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

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

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

我遇到的一个问题是,在我的配置skaffold config list -a中,我的默认-repo被设置为https://docker-registry.url.com,如下所示:

kubeContexts:
- kube-context: minikube
  default-repo: https://docker-registry.url.com

但是,正确的方法应该是没有https://:

kubeContexts:
- kube-context: minikube
  default-repo: docker-registry.url.com