我正在按照这个链接创建我的第一个docker映像,它成功了,现在我试图从这个链接将这个映像推到我的docker存储库中。但是每当我试图将这个映像推入存储库时,我就会得到这种类型的错误。

denied: requested access to the resource is denied

注:我已成功登录docker


当前回答

如果您已经登录,如果您仍然得到错误。请按照步骤操作,

PS C:\Users\rohit\Docker> docker logout
Removing login credentials for https://index.docker.io/v1/

PS C:\Users\rohit\Docker> docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: rohithpoya
Password:*****************
Login Succeeded

Logging in with your password grants your terminal complete access to your account.
For better security, log in with a limited-privilege personal access token. Learn more at https://docs.docker.com/go/access-tokens/

PS C:\Users\rohit\Docker> docker push rohithpoya/mongo-enterprise:5                                                                                                                                                                       
The push refers to repository [docker.io/rohithpoya/mongo-enterprise]                                                                                                                                                                        83ee27b8fe98: Pushed

其他回答

Docker对私有存储库的数量也有限制。如果您正在通过从本地机器推入创建私有存储库,则它将创建存储库,但不能再向其推入或从其拉出任何其他内容,并且您将得到“对资源的请求访问被拒绝”错误。

登录docker后,您需要用前缀命名您的映像。

例如,如果你在docker-hub中的用户名是Shah,图像应该是:

Shah/firstimage

我很慢地添加另一个答案,但接受的答案和其余的答案提到docker登录缺少一个边缘情况,以解决其他人在评论中陈述的问题。

docker login <private-repo-host>:<port>

强调需要进入的端口可能是那些仍在寻找的解决方案。docker login或docker login <private-repo-host>可能连接没有问题,但当需要推送图像时,你会得到与OP相同的错误。

也就是说,你可以连接w/o定义主机或端口,仍然得到:

... 登录成功

在我的例子中,我使用一个自托管的GitLab内置docker-registry,它被设置为使用端口4567。验证必须从哪个端口访问注册表可能有点冒险。没有指定端口docker login <our.gitlab。主机>将成功登录,但给出了OP询问的相同问题:

... 推送指的是存储库[…] Denied:禁止访问

如果你使用docker。Io /dockerhub你可能不会遇到这个问题,但是如果你有一个自托管/私有注册表解决方案,那么你需要显式地使用docker注册表的主机和端口登录的可能性就会增加。

我在git上的问题是项目权限配置。 我已经通过启用“容器注册表”在设置->通用->可见性,项目功能,权限和启用容器注册表为我的项目(链接):

推送所有标签

使用-a来推。S.t. docker push username/image -a

拒绝访问可能是由于docker存储库权限不是公共的(你可以再次检查)

你需要拉一下看看是否可以。

在hub.docker.com中查看

打开“标签”查看成功推送后所有可用的标签