背景:我用的是harbor管理镜像仓库,之前没有上传下载过harbor上的镜像。在我配置了daemon.json文件后,可以pull镜像了,但是我往library目录push的时候仍然有问题,提示错误:denied: requested access to the resource is denied 。个人感觉是因为没有登录的问题。

解决方法:

  1. 切换到root用户su root,然后到/root/.docker目录下查看是否有config.json文件
  2. 如果有,可以先备份一下mv config.json config.json.back,没有跳过这一步
  3. 重启docker 服务service docker restart
  4. 因为我用的是harbor,所以我登录我的harbor地址docker login ip,输入用户名密码(这里我登录的是admin的账号,我猜测harbor的library虽然是公共的,应该是可以公共pull,不能公共push,这个library是归admin管理的)
  5. 这个时候可以往harbor的library上push镜像了
  6. 检查/root/.docker目录下,又生成了一个config.json文件,感兴趣的可以打开看下,里边有你刚登陆的auth信息
  7. 之后在push镜像,就不需要在login了。

一些猜测:

一个IP只能存储一个默认的auth账号。用admin登录了,如果在上传镜像到其他账号下,就需要显示的在docker login你要上传的账户。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐