docker 本地不存在具有以下标记的图像:将图像推到本地注册表时

ux6nzvsh  于 2023-01-12  发布在  Docker
关注(0)|答案(6)|浏览(163)

我尝试将一个映像推送到minikube中运行的本地注册表,但得到以下错误:

Successfully built ee84225eb459
Successfully tagged user/apiserver:0.0.1

$ docker push localhost:5000/user/apiserver:0.0.1

The push refers to a repository [localhost:5000/user/apiserver]
An image does not exist locally with the tag: localhost:5000/user/apiserver

我已经试过启动minikube与以下:

minikube start --vm-driver xhyve --insecure-registry localhost:5000
eval $(minikube docker-env)
k4emjkb1

k4emjkb11#

您需要标记推送图像。标记图像时,您可以使用图像标识符(imageId)。显示具有docker images的所有图像的列表时,将列出该标识符。创建标记的语法和示例(使用imageId)如下:

docker tag <imageId or imageName> <hostname>:<repository-port>/<image>:<tag>
docker tag af340544ed62 example.com:18444/hello-world:mytag

成功创建标记(相当于版本)后,您可以使用docker images确认其创建,并使用以下语法发出push

docker push <hostname>:<repository-port>/<image>:<tag>

There is an example for local nexus repository

yxyvkwin

yxyvkwin2#

我也遇到了同样的错误,OP指的是,Google搜索准确的短语将我带到这里,但是,在我的例子中,我将它推送到了default/public存储库(hub.docker.com),而不是本地存储库。
这是我在磁盘上创建的本地映像

[root@ip-172-31-22-195 centos]# docker images
REPOSITORY             TAG       IMAGE ID       CREATED        SIZE
centos                 latest    927311af2297   20 hours ago   193MB

我把它标记成这样:

docker tag centos devopskalsym:latest

然后确认正在创建标记:

[root@ip-172-31-22-195 centos]# docker images
REPOSITORY             TAG       IMAGE ID       CREATED        SIZE
devopskalsym           latest    927311af2297   20 hours ago   193MB
centos                 latest    927311af2297   20 hours ago   193MB

因为我在Docker Hub上的存储库是:devopskalsym/centos7,我试着推它:

docker push devopskalsym/centos7:latest

并得到错误:

[root@ip-172-31-22-195 centos]# docker push devopskalsym/centos7:latest
The push refers to repository [docker.io/devopskalsym/centos7]
An image does not exist locally with the tag: devopskalsym/centos7

所以我去掉了标签:

[root@ip-172-31-22-195 centos]# docker rmi devopskalsym
Untagged: devopskalsym:latest

然后用@BMitch提到的格式正确地重新标记。

docker tag centos:latest devopskalsym/centos7:latest

使用的格式如下:docker tag local-image:tagname new-repo:tagname
现在它正确地显示图像:

[root@ip-172-31-22-195 centos]# docker images
REPOSITORY             TAG       IMAGE ID       CREATED        SIZE
devopskalsym/centos7   latest    927311af2297   20 hours ago   193MB
centos                 latest    927311af2297   20 hours ago   193MB

然后又按了一下

docker push devopskalsym/centos7:latest

而且成功了

[root@ip-172-31-22-195 centos]# docker push devopskalsym/centos7:latest
The push refers to repository [docker.io/devopskalsym/centos7]
b7d51bf3d09e: Pushing [==================================>                ]    132MB/193.3MB

注意:您可能需要使用docker login登录

5q4ezhmt

5q4ezhmt3#

Successfully tagged user/apiserver:0.0.1

docker push localhost:5000/user/apiserver:0.0.1

图像标签需要包含注册表名称/端口,以便您将其推送到默认注册表(Docker Hub)以外的任何地方。因此,您需要将图像标签为localhost:5000/user/apiserver:0.0.1而不是user/apiserver:0.0.1。然后,您就可以将其推送到本地注册表。

6l7fqoea

6l7fqoea4#

我有个印象

trip-bot                     latest     0c9e8f0367bc   36 minutes ago   955MB

我得到了错误
推送引用存储库[docker.io/ilkhr/trip-bot]本地不存在具有以下标记的映像:ilkhr/跳闸机器人

就这样解决了问题

$ docker tag 0c9e8f0367bc ilkhr/trip-bot:trip-bot

之后我就这么做了

$ docker push ilkhr/trip-bot:trip-bot
ubby3x7f

ubby3x7f5#

1.首先使用以下命令启动Docker登录:-

docker login

1.然后使用此命令检查映像ID /标签

docker images

1.一旦你得到你的图像id/标签,然后使用此命令推送到你的dockerhub存储库

docker tag <imageId or tag> <dockerhub id>/<imagename>:<tag>

或者一般情况下,您可以使用

docker tag <imageId or tag> <hostname>:<repository-port>/<imagename>:<tag>
  • 注意用您的具体信息替换尖括号 *
cbeh67ev

cbeh67ev6#

如果您试图推送到Docker Hub并得到此标记错误,请记住,在您构建映像的时刻,您应该声明您的Docker Hub帐户的用户名,以便将其正确推送。
在我的例子中,正确的命令是

docker image build -t marcofloriano/hello-docker .

而不是

码头形象建设-t你好码头。

相关问题