我正在按照这个链接创建我的第一个docker映像,它成功了,现在我试图从这个链接将这个映像推到我的docker存储库中。但是每当我试图将这个映像推入存储库时,我就会得到这种类型的错误。
denied: requested access to the resource is denied
注:我已成功登录docker
我正在按照这个链接创建我的第一个docker映像,它成功了,现在我试图从这个链接将这个映像推到我的docker存储库中。但是每当我试图将这个映像推入存储库时,我就会得到这种类型的错误。
denied: requested access to the resource is denied
注:我已成功登录docker
当前回答
我在Azure管道中遇到了类似的问题。我错过了在repository部分添加docker-id。
在Azure中,在推送时,如果仅使用名称,例如<repo-name>,可能无法工作。它需要完全限定的回购名称,其中还包括docker-id。
Use
repository: '<docker-id>/<repo-name>'
而不是
repository: '<repo-name>'
管道代码片段:
- task: Docker@2
inputs:
containerRegistry: 'service-connection-name'
repository: '<docker-id>/<repo-name>'
其他回答
docker处理用户id和存储库的方式可能有点令人困惑。 假设您在docker hub上创建了一个用户帐户xyz。新帐户自动建立名称空间xyz。 然后创建一个名为myrepo的存储库。存储库名称实际上是xyz/myrepo。
要推送一个图像,你应该做:
docker push docker.io/xyz/myrepo
如果需要,可以添加“:latest”或其他标签。
如果你得到的资源访问请求被拒绝错误消息:
访问https://hub.docker.com/并以xyz登录。 单击存储库xyz/myrepo。 点击合作者。 添加xyz作为合作者。
另一个(非常聪明的)原因是:你的计划已经没有私人回购了。
Docker对私有存储库的数量也有限制。如果您正在通过从本地机器推入创建私有存储库,则它将创建存储库,但不能再向其推入或从其拉出任何其他内容,并且您将得到“对资源的请求访问被拒绝”错误。
对于那些试图将映像推送到自己的Nexus存储库管理器的人,请执行以下操作:
1)登录到您的Nexus存储库管理器(端口8443与特定的Docker主机存储库相关联)
sudo docker login xxx.mydomain.com:8443
2)标记图像与您的NEXUS服务器IP/DNS
sudo docker tag myimage:latest xxx.mydomain.com:8443/myimage:1.0.0
3)推送图片
sudo docker push xxx.mydomain.com:8443/myimage:1.0.0
我有一个类似的问题,我通过创建一个具有相同映像名称的存储库来解决它,然后将它推到docker,它工作了