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

denied: requested access to the resource is denied

注:我已成功登录docker


当前回答

在我的例子中,sudo -E处理此消息失败。解决方案是提供访问do docker而不使用sudo(创建一个组docker,将(Jenkins)用户添加到组中,将组设置在/var/run/docker.sock上)。现在docker push不需要sudo了,而且可以工作。

其他回答

我的问题是在我的图像名称中使用无效字符(额外的/):

myusername/something/image

无效的映像名称。/上的用户名都尝试dangillmor something-image。希望这能帮助到一些人。

我也有这个问题,我测试了这里的解决方案,但无济于事,我已经正确登录,至少根据docker登录的输出,但我仍然无法推送图像。最终奏效的方法很简单:

码头工人注销

然后docker登录,就这么简单。我不知道发生了什么,但强迫重新登录起作用了。

不知道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。 这对我很管用。

您可能需要在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处理用户id和存储库的方式可能有点令人困惑。 假设您在docker hub上创建了一个用户帐户xyz。新帐户自动建立名称空间xyz。 然后创建一个名为myrepo的存储库。存储库名称实际上是xyz/myrepo。

要推送一个图像,你应该做:

docker push docker.io/xyz/myrepo

如果需要,可以添加“:latest”或其他标签。

如果你得到的资源访问请求被拒绝错误消息:

访问https://hub.docker.com/并以xyz登录。 单击存储库xyz/myrepo。 点击合作者。 添加xyz作为合作者。