我正在按照这个链接创建我的第一个docker映像,它成功了,现在我试图从这个链接将这个映像推到我的docker存储库中。但是每当我试图将这个映像推入存储库时,我就会得到这种类型的错误。
denied: requested access to the resource is denied
注:我已成功登录docker
我正在按照这个链接创建我的第一个docker映像,它成功了,现在我试图从这个链接将这个映像推到我的docker存储库中。但是每当我试图将这个映像推入存储库时,我就会得到这种类型的错误。
denied: requested access to the resource is denied
注:我已成功登录docker
当前回答
我在Azure管道中遇到了类似的问题。我错过了在repository部分添加docker-id。
在Azure中,在推送时,如果仅使用名称,例如<repo-name>,可能无法工作。它需要完全限定的回购名称,其中还包括docker-id。
Use
repository: '<docker-id>/<repo-name>'
而不是
repository: '<repo-name>'
管道代码片段:
- task: Docker@2
inputs:
containerRegistry: 'service-connection-name'
repository: '<docker-id>/<repo-name>'
其他回答
我真的希望这能帮助到一些人(像我一样先看最终答案的人):
我不断地尝试输入
docker push user/repo/tag
而不是
docker push user/repo:tag
因为我也这样做了我的标签:
docker tag image user/repo/tag
...一切都毁了。
我真诚地希望你不要重蹈我的覆辙。我在这上面浪费了30分钟…
之前的答案都是正确的,我只是想补充一个我看到没有提到的信息;
如果项目是私有项目,要正确地推送映像,必须配置个人访问令牌或启用read_registry key的部署令牌。
来源:https://gitlab.com/help/user/project/container_registry using-with-private-projects
希望这是有帮助的(如果问题是张贴到目前为止的时间)
我也有同样的问题。在我的情况下,我登录在index.docker.io,并将图像推到docker.io/username/image:标签。
解决方案是在docker中登录。IO通过运行这个命令:
export CI_REGISTRY=docker.io
docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
docker push USERNAME/IMAGE:TAG
输出为:
The push refers to repository [docker.io/USERNAME/IMAGE:TAG] eeb7e16c6369: Preparing 6bd09f46d0ae: Preparing f5a7f7a3fb28: Preparing 07952c1df7f6: Preparing a4522c0d203b: Preparing 3e207b409db3: Preparing 3e207b409db3: Waiting a4522c0d203b: Layer already exists 3e207b409db3: Layer already exists f5a7f7a3fb28: Pushed 6bd09f46d0ae: Pushed 07952c1df7f6: Pushed eeb7e16c6369: Pushed latest: digest: sha256:7ce256fa83ef1eebcaaaa460c4d73f87f2adf304bc6e6c1b83a19d987cd61ad5 size: 1579 Running after_script 00:02 Saving cache 00:01 Uploading artifacts for successful job 00:02 Job succeeded
的问候。
在使用Fabric8 Maven插件(在Windows 10上)和直接从命令行调用docker push时,我一直在与docker push作斗争。
最后我用同样的方法解决了这两个问题。
我的回购叫做vgrazi/playpen。在我的pom中,我将docker镜像名称更改为vgrazi/playpen,如下所示:
<plugin>
<groupId>io.fabric8</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.31.0</version>
<configuration>
<dockerHost>npipe:////./pipe/docker_engine</dockerHost>
<verbose>true</verbose>
<images>
<image>
<name>vgrazi/playpen</name>
<build>
<dockerFileDir>${project.basedir}/src/main/docker/</dockerFileDir>
...
这让我做一个mvn清洁包docker:build docker:push从命令行,最后,图像出现在我的repo,这是我试图解决的问题。
顺便说一句,为了回答OP并让它直接从命令行工作,没有Maven,我做了以下操作(PS是PowerShell提示符,不要键入它):
PS docker images
vgrazi/docker-test/docker-play playpen 0722e876ebd7 40 minutes ago 536MB
rabbitmq 3-management 68055d63a993 10 days ago 180MB
PS docker tag 0722e876ebd7 vgrazi:playpen
PS docker push vgrazi/playpen
图像再次出现在我的docker中。Io: repo vgrazi/playpen
我知道这个问题已经有很多答案了,但没有一个对我有帮助。
我观察到的是,构建映像非常快,并将其推到docker。IO导致错误:
denied: requested access to the resource is denied
我还注意到做一个
docker image ls
显示我的图像的最新构建是几天前的。
我必须做一个
docker container prune
来摆脱停止的容器,和一个
docker image prune -a
为了摆脱旧的形象。 然后我就可以成功地建立和推广我的形象。
'denied:对资源的请求访问被拒绝'不是来自docker。我是本地码头工人。有趣的是,它在构建过程中并没有失败。