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

denied: requested access to the resource is denied

注:我已成功登录docker


当前回答

重命名图像为用户名/image-name dockerhub-username/some-name:your-tag(例如:latest)

其他回答

之前的答案都是正确的,我只是想补充一个我看到没有提到的信息;

如果项目是私有项目,要正确地推送映像,必须配置个人访问令牌或启用read_registry key的部署令牌。

来源:https://gitlab.com/help/user/project/container_registry using-with-private-projects

希望这是有帮助的(如果问题是张贴到目前为止的时间)

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

我不断地尝试输入

docker push user/repo/tag

而不是

docker push user/repo:tag

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

docker tag image user/repo/tag

...一切都毁了。

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

推送所有标签

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

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

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

在hub.docker.com中查看

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

我得到了同样的错误。不幸的是,这个错误是由于在docker push之前使用sudo造成的。此外,您可能需要从dockerhub中删除存储库,因为您可以拥有的repo数量是有限的。并且,请尝试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

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

希望这能帮助到其他人。