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

denied: requested access to the resource is denied

注:我已成功登录docker


当前回答

我也有同样的问题,但这里给出的接受答案不适合我。 我试了几步,最后终于能推它了。

以下是对我有用的步骤:

登录docker。 Docker登录-u sirimalla 标记您的映像构建

我的图像名称是:mylocalimage,默认情况下它有标签:latest 和我的用户名是:sirimala注册到docker云,我创建了一个公共存储库名为:dockerhub

所以我的个人存储库现在变成了:sirimala /dockerhub 我想用标签myfirstmagepush来推送我的图片

我标记如下:

docker tag mylocalimage:latest sirimalla/dockerhub:myfirstimagepush

将图像推送到我的个人docker存储库,如下所示 Docker push sirimala /dockerhub: myfirstmagpush

它成功地推动了我个人的docker回购。

其他回答

对于那些试图将映像推送到自己的Nexus存储库管理器的人,请执行以下操作:

1)登录到您的Nexus存储库管理器(端口8443与特定的Docker主机存储库相关联)

sudo docker login xxx.mydomain.com:8443

2)标记图像与您的NEXUS服务器IP/DNS

sudo docker tag myimage:latest xxx.mydomain.com:8443/myimage:1.0.0

3)推送图片

sudo docker push xxx.mydomain.com:8443/myimage:1.0.0

我也有这个问题。事实证明,我使用的是免费层,并试图在私有存储库中推送多个图像。将一张图片设为私有,其余的设为公共,这对我来说很管用。

我在上码头工人初级课程时也遇到了同样的问题。我通过在docker push调用之前进行adocker登录来解决这个问题。

所以,如果这对任何人有帮助的话… 我有同样的问题,这是我的问题和修复是什么。 我的测试网络上有一台名为“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

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

希望这能帮助到其他人。

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