我正在遵循使用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键,砰!它工作。

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

其他回答

我遇到的一个问题是,在我的配置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

我使用的是一个非常通用的命令

Docker构建。

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

Docker构建。- t image_name

然后就成功了。

所以在我的案例中,问题是这个命令是“非法的”。以一种不受支持的格式,这是我在官方文档中发现它后最不希望发生的事情,但它就是这样。确保您使用了正确的命令。

删除\并不断地写入命令。

像这样写

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

而不是

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

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