背景:我用的是harbor管理镜像仓库,之前没有上传下载过harbor上的镜像。在我配置了daemon.json文件后,可以pull镜像了,但是我往library目录push的时候仍然有问题,提示错误:denied: requested access to the resource is denied 。个人感觉是因为没有登录的问题。
解决方法:
- 切换到root用户
su root
,然后到/root/.docker
目录下查看是否有config.json文件 - 如果有,可以先备份一下
mv config.json config.json.back
,没有跳过这一步 - 重启docker 服务
service docker restart
- 因为我用的是harbor,所以我登录我的harbor地址
docker login ip
,输入用户名密码(这里我登录的是admin的账号,我猜测harbor的library虽然是公共的,应该是可以公共pull,不能公共push,这个library是归admin管理的) - 这个时候可以往harbor的library上push镜像了
- 检查
/root/.docker
目录下,又生成了一个config.json文件,感兴趣的可以打开看下,里边有你刚登陆的auth信息 - 之后在push镜像,就不需要在login了。
一些猜测:
一个IP只能存储一个默认的auth账号。用admin登录了,如果在上传镜像到其他账号下,就需要显示的在docker login你要上传的账户。