如何为Docker推送指定不同仓库?私有仓库推送失败排查
搞定Docker私有镜像推送失败的问题
嘿,我来帮你解决这个推送失败的麻烦!从你提供的命令和报错信息来看,主要是两个关键问题导致的:
1. 命令写法出错了
你把docker login和docker push揉在同一条命令里了,而且sudo的位置也不对。正确的操作应该是先单独完成登录,再执行推送:
# 先登录Docker Hub(你的是Docker Hub私有库,直接登录就行) sudo docker login # 然后执行推送命令 sudo docker push istvan/xxx:你的镜像标签
2. 镜像标签格式不符合要求
报错里显示The push refers to a repository [docker.io/library/istvan],这说明你用的istvan:xxx标签被Docker当成了官方公共库(library)下的镜像,而不是你的私有仓库istvan/xxx。Docker Hub私有仓库的镜像标签必须是用户名/仓库名:标签的格式,比如istvan/xxx:latest或者你自定义的标签。
你需要先给本地镜像打上正确的标签,再推送:
# 假设你本地镜像的ID是2456c4c8fd2b,或者原来的标签是xxx sudo docker tag 你的本地镜像ID istvan/xxx:你的标签 # 要是刚构建完镜像,也可以在构建时直接指定正确标签 sudo docker build -t istvan/xxx:你的标签 .
最后再检查这几点
- 确认你登录的Docker账号确实拥有
istvan/xxx这个私有仓库的推送权限 - 登录时输入的用户名和密码没写错
- 如果你的私有仓库不在Docker Hub,推送时要加上仓库地址前缀,比如
私有仓库地址/istvan/xxx:标签
你的报错信息:
The push refers to a repository [docker.io/library/istvan]
2456c4c8fd2b: Preparing
5903f32c0854: Preparing
549bd34bfa87: Preparing
08586c0f628f: Preparing
2aebd096e0e2: Preparing
denied: requested access to the resource is denied
内容的提问来源于stack exchange,提问作者Istvan
相关产品推荐
相关产品推荐

