我正在按照这个链接创建我的第一个docker映像,它成功了,现在我试图从这个链接将这个映像推到我的docker存储库中。但是每当我试图将这个映像推入存储库时,我就会得到这种类型的错误。
denied: requested access to the resource is denied
注:我已成功登录docker
我正在按照这个链接创建我的第一个docker映像,它成功了,现在我试图从这个链接将这个映像推到我的docker存储库中。但是每当我试图将这个映像推入存储库时,我就会得到这种类型的错误。
denied: requested access to the resource is denied
注:我已成功登录docker
当前回答
在使用Gitlab注册表时,我还遇到了这个错误消息。不同之处在于,我试图从以前的构建中更改映像的名称。这里的问题是,推送图像的注册表不存在,因为图像的新名称与我组中的任何项目都不匹配。
TLDR:在Gitlab中,映像名称必须与项目名称匹配。
其他回答
如果您已经登录,如果您仍然得到错误。请按照步骤操作,
PS C:\Users\rohit\Docker> docker logout
Removing login credentials for https://index.docker.io/v1/
PS C:\Users\rohit\Docker> docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: rohithpoya
Password:*****************
Login Succeeded
Logging in with your password grants your terminal complete access to your account.
For better security, log in with a limited-privilege personal access token. Learn more at https://docs.docker.com/go/access-tokens/
PS C:\Users\rohit\Docker> docker push rohithpoya/mongo-enterprise:5
The push refers to repository [docker.io/rohithpoya/mongo-enterprise] 83ee27b8fe98: Pushed
我的问题是在我的图像名称中使用无效字符(额外的/):
myusername/something/image
无效的映像名称。/上的用户名都尝试dangillmor something-image。希望这能帮助到一些人。
所以,如果这对任何人有帮助的话… 我有同样的问题,这是我的问题和修复是什么。 我的测试网络上有一台名为“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
因此,出于某种原因,我不得不将端口作为存储库名称的必要部分包含在标记中。
希望这能帮助到其他人。
我在git上的问题是项目权限配置。 我已经通过启用“容器注册表”在设置->通用->可见性,项目功能,权限和启用容器注册表为我的项目(链接):
不知道docker hub发生了什么,但没有一个解决方案对我有效。以下是截至2018年1月,我最终管用的变通办法:
访问hub.docker.com并将存储库更改为private 在你的shell中:
码头工人的图片
存储库标记映像id创建大小 1.975 GB 1.955 GB 1.954 GB
docker 标签 bb38976d03cf dockhub用户名/verse_gapminder:mytag
Docker登录Docker .io
docker push dockhusersername /verse_gapminder:mytag
回到docker hub,将repo更改为public。 这对我很管用。