Docker——denied: requested access to the resource is denied 问题以及解决方法

问题
使用 docker push 推送镜像时,出现 denied: requested access to the resource is denied 的报错。

解析
原因和 Git push 代码一样,为了安全起见,在 Docker Hub 无法确定操作者的情况下,是无法完成 push 操作的。在 Git 中是通过配置文件 SSH Keys 来记住用户,那么在 Docker Hub 中也是通过配置文件。 通常在你第一次使用 docker login 命令登录你的 Docker 仓库时,会自动在你的机器上生成一个 config.json 的文件,目录具体位置不定。如果你是 root 用户操作,一般在/root/.docker/config.json 目录。如果是普通用户,那么可能在~/.docker/config.json 目录上。具体还是要看你登录的时候显示的哪个目录。
这里说一下,直接用-u 参数指定登录名或者直接 docker login 在输入用户名密码登录都可以。
例如:↓

画红框的就是你 config.json 的绝对路径。
解决方法
原因知道了,解决方法其实很简单。只需要使用 docker login 登录即可。如果上面的目录中有 config.json 文件,则会更新,如果没有,则会生成一个新的。接着再使用 docker push 镜像就 ok。下次 push 镜像的时候,也就不需要登录了。
登录:
注意
一定要注意自己上传的时候镜像名称对不对,还有路径对不对,我这边解决这个问题之后还是会报这个错,找了半天才找出来,还有一个问题就是给镜像打包的时候名字有问题,因为我创建了一个 liblarby,上传镜像的时候就多了一层目录,所以因为名字不正确(可以查看最上面的第一张图片),才会出现相同的报错,最后,重新 push 一下,就 ok 了。(tagname 是你的镜像的版本号)

最后就可以看到我们的镜像存储库了。


总结
相关文章:
①、Docker发布/上传镜像到dockerhub&&下载/拉取镜像&&删除dockerhub镜像②、Linux中安装/部署docker-compose③、Docker搭建harbor私有镜像仓库(命令行模式)④、Linux中基于Docker搭建harbor私有镜像仓库(超级详细)🔥🔥
版权声明: 本文为 InfoQ 作者【A-刘晨阳】的原创文章。
原文链接:【http://xie.infoq.cn/article/d222d85d3fab885c0267dded9】。未经作者许可,禁止转载。
评论