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

denied: requested access to the resource is denied

注:我已成功登录docker


当前回答

OS: Ubuntu16.04

原因:我删除了客户端配置文件(~/.docker/config.json)

解决方案:

重启码头工人。 服务docker重启。 它需要输入登录信息,然后自动生成配置文件。 Docker login——username=yourdockerhubername——email=youremail@company.com

其他回答

之前的答案都是正确的,我只是想补充一个我看到没有提到的信息;

如果项目是私有项目,要正确地推送映像,必须配置个人访问令牌或启用read_registry key的部署令牌。

来源:https://gitlab.com/help/user/project/container_registry using-with-private-projects

希望这是有帮助的(如果问题是张贴到目前为止的时间)

OS: Ubuntu16.04

原因:我删除了客户端配置文件(~/.docker/config.json)

解决方案:

重启码头工人。 服务docker重启。 它需要输入登录信息,然后自动生成配置文件。 Docker login——username=yourdockerhubername——email=youremail@company.com

这可能是特定于DigitalOceans容器注册表,但它可能有帮助:

在我的例子中,我的管道在docker推送之后触发了一个清理作业(doctl注册表垃圾收集启动),这将注册表置于只读模式(参见doc)。因此,在清理作业处于活动状态时的下一个推送将被拒绝:对资源的请求访问将被拒绝。

如果doctl注册表垃圾收集get-active返回404,则作业完成,docker推送将成功完成。

在尝试了每个高分解决方案后,我仍然没有运气。

直到我改变了我的重点和搜索关键字,包括我的凭证助手通行证。

如果您遇到类似的情况(使用任何类型的docker-credential-helpers,并遵循一般指导原则进行设置),请尝试检查步骤,看看是否遗漏了任何内容。

例如,我使用pass作为docker的凭据库,当我只是按照顶部搜索结果设置pass时,错过了为专用的pass-name docker- credial -helpers/docker-pass- initialization -check插入我的dockerhub帐户密码的步骤。

在发出以下命令后,docker push终于对我发了慈悲。

pass insert docker-credential-helpers/docker-pass-initialized-check

更多细节请看这个答案。

还需要注意的重要一点是,在标记图像时,首先使用命名空间标记,然后使用存储库/ mydevrepo标记。这让我在使用Docker文档时感到困惑。之后我使用:

docker login

然后我使用“tagged name”来推送我的图像。

docker push {namespace}/mydevrepo