docker tag whatEverNameForImage:tag YourUserName/whatEverNameForImage:tag
然后推送最新版本。docker push YourUserName/whatEverNameForImage:tag
我有些迟缓,才回答这个问题,但是已经被接受的答案和其他提到docker login
的答案都遗漏了一个边缘情况,无法解决其他人在评论中所述的问题。
docker login <private-repo-host>:<port>
docker login
或docker login <private-repo-host>
时,可能可以顺利连接,但当推送镜像时,您将会遇到与OP相同的错误。4567
。验证注册表必须从哪个端口访问可能是有优势的。如果不指定该端口,docker login <our.gitlab.host>
将成功登录,但会出现与OP所询问的相同问题:docker push org-name/image-name
我可以成功地将其推送到username/image-name,但无法推送到该组织。我三次检查了权限。没有任何作用。docker push org-name/image-name
值得一提的是,我认为在将帐户转换为组织之前,该repo最初是被推送的。我也遇到了这个问题。原来我正在使用免费版并尝试将超过1个图像推送到私有存储库中。将一个图像设为私有,其余的设为公共的对我有用。
我曾经在Azure管道中遇到了类似的问题。我忘记在存储库部分添加docker-id。
在Azure中,如果只使用名称(例如<repo-name>
)进行推送可能无法正常工作。需要使用完全限定的存储库名称,其中也包括docker-id。
请使用:
repository: '<docker-id>/<repo-name>'
替代
repository: '<repo-name>'
- task: Docker@2
inputs:
containerRegistry: 'service-connection-name'
repository: '<docker-id>/<repo-name>'
docker push user/repo/tag
相反地
docker push user/repo:tag
因为我也将我的标签制作成这样:
docker tag image user/repo/tag
一切都变得一团糟。
我真诚地希望你不要重复我的错误。我在这上面浪费了大约30分钟...
docker logout
docker login
(enter username and password)
docker login
docker tag {imageName} {dockerUserId}/{imageName}
docker push {dockerUserId}/{imageName}
sudo
- Sisir