我尝试将一个映像推送到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)
6条答案
按热度按时间k4emjkb11#
您需要标记和推送图像。标记图像时,您可以使用图像标识符(imageId)。显示具有docker images的所有图像的列表时,将列出该标识符。创建标记的语法和示例(使用imageId)如下:
成功创建标记(相当于版本)后,您可以使用docker images确认其创建,并使用以下语法发出push:
There is an example for local nexus repository
yxyvkwin2#
我也遇到了同样的错误,OP指的是,Google搜索准确的短语将我带到这里,但是,在我的例子中,我将它推送到了default/public存储库(hub.docker.com),而不是本地存储库。
这是我在磁盘上创建的本地映像
我把它标记成这样:
然后确认正在创建标记:
因为我在Docker Hub上的存储库是:devopskalsym/centos7,我试着推它:
并得到错误:
所以我去掉了标签:
然后用@BMitch提到的格式正确地重新标记。
使用的格式如下:
docker tag local-image:tagname new-repo:tagname
现在它正确地显示图像:
然后又按了一下
而且成功了
注意:您可能需要使用
docker login
登录5q4ezhmt3#
图像标签需要包含注册表名称/端口,以便您将其推送到默认注册表(Docker Hub)以外的任何地方。因此,您需要将图像标签为
localhost:5000/user/apiserver:0.0.1
而不是user/apiserver:0.0.1
。然后,您就可以将其推送到本地注册表。6l7fqoea4#
我有个印象
我得到了错误
推送引用存储库[docker.io/ilkhr/trip-bot]本地不存在具有以下标记的映像:ilkhr/跳闸机器人
就这样解决了问题
之后我就这么做了
ubby3x7f5#
1.首先使用以下命令启动Docker登录:-
1.然后使用此命令检查映像ID /标签
1.一旦你得到你的图像id/标签,然后使用此命令推送到你的dockerhub存储库
或者一般情况下,您可以使用
cbeh67ev6#
如果您试图推送到Docker Hub并得到此标记错误,请记住,在您构建映像的时刻,您应该声明您的Docker Hub帐户的用户名,以便将其正确推送。
在我的例子中,正确的命令是
而不是
码头形象建设-t你好码头。