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

denied: requested access to the resource is denied

注:我已成功登录docker


当前回答

我也有同样的问题。我强烈推荐大家浏览一下这个博客。

我的问题更多地与ACR有关。Docker客户端将引用配置。您的SP证书文件将存储在json文件中(角色所有者)。

博客中帮助我解决问题的部分有:

Docker镜像ls Docker标签.azurecr.io/:v1 Docker推送.azurecr.io/:v1

在此操作之前,我还创建了一个具有所有者特权的SP。

其他回答

在尝试了每个高分解决方案后,我仍然没有运气。

直到我改变了我的重点和搜索关键字,包括我的凭证助手通行证。

如果您遇到类似的情况(使用任何类型的docker-credential-helpers,并遵循一般指导原则进行设置),请尝试检查步骤,看看是否遗漏了任何内容。

例如,我使用pass作为docker的凭据库,当我只是按照顶部搜索结果设置pass时,错过了为专用的pass-name docker- credial -helpers/docker-pass- initialization -check插入我的dockerhub帐户密码的步骤。

在发出以下命令后,docker push终于对我发了慈悲。

pass insert docker-credential-helpers/docker-pass-initialized-check

更多细节请看这个答案。

这个答案既适用于我未来的自己,也适用于其他人。当我正确登录时,我遇到了这个确切的问题,但是当我的私人回购数量大于或等于我的计划允许的限制时,我正试图推到一个私人回购。

我不太确定我是如何能够创建太多的私人回购,但如果我的计划包括5个私人回购,以某种方式我有6个,那么这是我将收到的错误:

Denied:拒绝访问资源的请求

在我的情况下,可能我最终有太多的私有存储库,因为我把我的默认可见性设置为私有:

这是你决定你可以拥有多少私人回购的地方:

一旦我公开了这个有问题的回购,问题就变得显而易见了:

在我把“docker login https://hub.docker.com”改成“docker login docker”之后,它就工作了。并提供用户名和密码。

然后执行以下命令:

docker tag local-image:tagname new-repo:tagname

docker push new-repo:tagname

注意:"new-repo"将包含"Docker ID + Repo名称"

这里,在运行以下命令之前,我已经在Docker Hub中创建了“ubuntu”repo。

例子:

docker tag alok/ubuntu:latest aloktiwari2007/ubuntu:latest

docker push aloktiwari2007/ubuntu:latest

在使用Gitlab注册表时,我还遇到了这个错误消息。不同之处在于,我试图从以前的构建中更改映像的名称。这里的问题是,推送图像的注册表不存在,因为图像的新名称与我组中的任何项目都不匹配。

TLDR:在Gitlab中,映像名称必须与项目名称匹配。

我有一个类似的问题,我通过创建一个具有相同映像名称的存储库来解决它,然后将它推到docker,它工作了