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

denied: requested access to the resource is denied

注:我已成功登录docker


当前回答

在我的例子中,sudo -E处理此消息失败。解决方案是提供访问do docker而不使用sudo(创建一个组docker,将(Jenkins)用户添加到组中,将组设置在/var/run/docker.sock上)。现在docker push不需要sudo了,而且可以工作。

其他回答

我真的希望这能帮助到一些人(像我一样先看最终答案的人):

我不断地尝试输入

docker push user/repo/tag

而不是

docker push user/repo:tag

因为我也这样做了我的标签:

docker tag image user/repo/tag

...一切都毁了。

我真诚地希望你不要重蹈我的覆辙。我在这上面浪费了30分钟…

另一个(非常聪明的)原因是:你的计划已经没有私人回购了。

最简单的方法是使用docker桌面(适用于Windows 10或以上版本和mac)

通过提供dockerID注册docker hub

然后点击docker桌面图标在你的机器和->首选项->然后登录到它使用docker枢纽docker/id和密码。

不允许误导标签名称。 我的解决方法是:

Command 1(Create Tag): docker tag my-nginx:latest rsachde/nginx-repository/trys:1.0 (Didn't push)
Command 2(Push): docker push rsachde/nginx-repository/try:1.0 

输出:

Denied:拒绝访问资源的请求


Command 1.1(Create Tag): docker tag my-nginx:latest rsachde/nginx-repository/:trys 
Command 2.2(Push): docker push rsachde/nginx-repository:trys 

输出:

trys: digest: sha256:405b6f0ae25772ef71b8f59fd6a56ff9b426f50bd24bac2b5db41f65efd3387c 尺寸:1365

误导是标签,确保你们理解。

我很慢地添加另一个答案,但接受的答案和其余的答案提到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注册表的主机和端口登录的可能性就会增加。