我正在按照这个链接创建我的第一个docker映像,它成功了,现在我试图从这个链接将这个映像推到我的docker存储库中。但是每当我试图将这个映像推入存储库时,我就会得到这种类型的错误。
denied: requested access to the resource is denied
注:我已成功登录docker
我正在按照这个链接创建我的第一个docker映像,它成功了,现在我试图从这个链接将这个映像推到我的docker存储库中。但是每当我试图将这个映像推入存储库时,我就会得到这种类型的错误。
denied: requested access to the resource is denied
注:我已成功登录docker
当前回答
步骤1:修改docker帐号的隐私模式
https://hub.docker.com/settings/default-privacy
第二步:执行屏幕短片中提到的以下命令:
码头工人的图片 docker tag <<TAG_ID>> <<USER_NAME>>/<<IMAGE_NAME>>:最新的 Docker登录Docker .io docker push <<USER_NAME>>/<<IMAGE_NAME>>:最新的
输出:
其他回答
所以,如果这对任何人有帮助的话… 我有同样的问题,这是我的问题和修复是什么。 我的测试网络上有一台名为“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
因此,出于某种原因,我不得不将端口作为存储库名称的必要部分包含在标记中。
希望这能帮助到其他人。
我真的希望这能帮助到一些人(像我一样先看最终答案的人):
我不断地尝试输入
docker push user/repo/tag
而不是
docker push user/repo:tag
因为我也这样做了我的标签:
docker tag image user/repo/tag
...一切都毁了。
我真诚地希望你不要重蹈我的覆辙。我在这上面浪费了30分钟…
我很慢地添加另一个答案,但接受的答案和其余的答案提到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注册表的主机和端口登录的可能性就会增加。
重命名图像为用户名/image-name dockerhub-username/some-name:your-tag(例如:latest)
我知道这个问题已经有很多答案了,但没有一个对我有帮助。
我观察到的是,构建映像非常快,并将其推到docker。IO导致错误:
denied: requested access to the resource is denied
我还注意到做一个
docker image ls
显示我的图像的最新构建是几天前的。
我必须做一个
docker container prune
来摆脱停止的容器,和一个
docker image prune -a
为了摆脱旧的形象。 然后我就可以成功地建立和推广我的形象。
'denied:对资源的请求访问被拒绝'不是来自docker。我是本地码头工人。有趣的是,它在构建过程中并没有失败。