我正在按照这个链接创建我的第一个docker映像,它成功了,现在我试图从这个链接将这个映像推到我的docker存储库中。但是每当我试图将这个映像推入存储库时,我就会得到这种类型的错误。
denied: requested access to the resource is denied
注:我已成功登录docker
我正在按照这个链接创建我的第一个docker映像,它成功了,现在我试图从这个链接将这个映像推到我的docker存储库中。但是每当我试图将这个映像推入存储库时,我就会得到这种类型的错误。
denied: requested access to the resource is denied
注:我已成功登录docker
当前回答
您可能需要在docker push之前将docker repo切换为private。
感谢Dean Wu提供的答案和ses的评论,在推送之前,请记得注销,然后从命令行登录到您的docker hub帐户
# you may need log out first `docker logout` ref. https://stackoverflow.com/a/53835882/248616
docker login
根据文件:
You need to include the namespace for Docker Hub to associate it with your account.
The namespace is the same as your Docker Hub account name.
You need to rename the image to YOUR_DOCKERHUB_NAME/docker-whale.
所以,这意味着你必须在推送之前标记你的图像:
docker tag firstimage YOUR_DOCKERHUB_NAME/firstimage
然后你就可以推它了。
docker push YOUR_DOCKERHUB_NAME/firstimage
其他回答
我知道这个问题已经有很多答案了,但没有一个对我有帮助。
我观察到的是,构建映像非常快,并将其推到docker。IO导致错误:
denied: requested access to the resource is denied
我还注意到做一个
docker image ls
显示我的图像的最新构建是几天前的。
我必须做一个
docker container prune
来摆脱停止的容器,和一个
docker image prune -a
为了摆脱旧的形象。 然后我就可以成功地建立和推广我的形象。
'denied:对资源的请求访问被拒绝'不是来自docker。我是本地码头工人。有趣的是,它在构建过程中并没有失败。
这个答案既适用于我未来的自己,也适用于其他人。当我正确登录时,我遇到了这个确切的问题,但是当我的私人回购数量大于或等于我的计划允许的限制时,我正试图推到一个私人回购。
我不太确定我是如何能够创建太多的私人回购,但如果我的计划包括5个私人回购,以某种方式我有6个,那么这是我将收到的错误:
Denied:拒绝访问资源的请求
在我的情况下,可能我最终有太多的私有存储库,因为我把我的默认可见性设置为私有:
这是你决定你可以拥有多少私人回购的地方:
一旦我公开了这个有问题的回购,问题就变得显而易见了:
我也面临着同样的问题,我给我的图像名称为something/image-name,但我尝试了<docker-hub-username>/image-name,它就像一个魅力。
步骤1
Docker登录——username=jp9573
步骤2
Docker push jp9573/todo
之前我给了jaypatel/todo,我只是把它改成了用户名/图像模式。通过这种方式,我不需要标记图像或任何东西。我认为这对新人来说是一种很好的方式。
在我的例子中,我被推送到一个组织,我所在的团队对存储库有管理权限。
所以我的推送命令是: Docker push org-name/image-name
我可以成功地推到用户名/image-name,但不能推到组织。我再三检查了权限。毫无效果。
解决方案是从docker hub中删除repo,并再次使用: Docker push org-name/image-name
至于它的价值,我认为回购最初是在帐户转换为组织之前推动的。
不知道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。 这对我很管用。