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

denied: requested access to the resource is denied

注:我已成功登录docker


当前回答

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 for Windows”应用程序和签出https://hub.docker.com/网站后执行“Docker登录”和“Docker推送”。 这对我很有帮助。

所以,如果这对任何人有帮助的话… 我有同样的问题,这是我的问题和修复是什么。 我的测试网络上有一台名为“galaxy”的计算机。 我使用以下运行命令设置docker注册表:

sudo docker run -d 
--restart=always \
--name registry \
-v /srv/registry/certs:/certs \
-v /srv/registry/storage:/var/lib/registry \
-e REGISTRY_HTTP_ADDR=0.0.0.0:443 \
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/galaxy.cert \
-e REGISTRY_HTTP_TLS_KEY=/certs/galaxy.key \
-p 443:443 \
registry:2

然后我试图从网络上的笔记本电脑推送图像到银河系,所以我这样做了:

docker login galaxy

这将给我一个错误,它会说:

Login did not succeed, error: Error response from daemon: 
    Get https://galaxy/v2/: x509: certificate signed by unknown authority

奇怪的是,解决这个问题的方法是这样登录:

docker login galaxy:443

这导致了一次成功的登录。 然后我试着把图片从我的笔记本电脑推到“银河”。 我已经为我的图像创建了一个标签,看起来像这样:

galaxy/myImage:0.0.1

所以我试着这样推它:

docker push galaxy/myImage:0.0.1

我得到的回答是:

The push refers to repository [docker.io/galaxy/myImage]
7ab460574f86: Preparing 
1aecaf56754d: Preparing 
1df1b5f06ca4: Preparing 
denied: requested access to the resource is denied

奇怪的是,我发现解决这个问题的方法是首先将图像标记如下:

docker tag myImage:0.0.1 galaxy:443/myImage:0.0.1

... 然后像这样推:

docker push galaxy:443/myImage:0.0.1

因此,出于某种原因,我不得不将端口作为存储库名称的必要部分包含在标记中。

希望这能帮助到其他人。

在Azure Devops中创建CI管道以构建docker映像并将其推送到docker Hub时,我也遇到了同样的问题。我所犯的错误是在容器存储库部分提供了错误的条目。

在buildAndPush任务中,我在容器存储库字段中给出存储库名称。实际上,存储库名称应该附加Docker Hub用户名/。 例如,您的用户名是myuser,存储库名称是test,然后提供myuser/test条目。一旦我纠正了这个问题,管道就成功地工作了,图像被推送到我的docker中心存储库

DR docker登录在macOS上不工作,但从应用程序的docker登录工作

当直接从终端使用时,命令docker登录成功地要求我的凭据,在我正确输入它们之后(记住没有电子邮件,只有docker ID将工作),它宣布登录成功,但任何推送请求将以拒绝告终:请求访问资源被拒绝

然而,当我从正在运行的macOs docker应用程序登录时(工具栏中的图标),它工作了。因此,docker登录和运行的docker应用程序/守护进程之间可能会有一些不一致

Docker中心计划对命名空间可以使用的私有存储库数量有限制。例如,免费计划将只允许您在任何时间点为一个帐户使用一个私有存储库。

如果你在计划的限制之内,那么你的努力就会成功。否则,将创建一个带有适当标记的空存储库,但图像本身不会被推送。

在我的例子中,我在推送图像之前使用web控制台将存储库创建为公共。