docker login 登录harbor报错:Error response from daemon: Get “http://harbor.test.cn/v2/”: unauthorized: authentication required
1、问题背景
- 测试中创建harbor企业镜像仓库,登录时被拒绝
unauthorized: authentication required
docker login -uadmin -pasdf harbor.test.cn
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
Error response from daemon: Get "http://harbor.test.cn/v2/": unauthorized: authentication required
2、排查思路
- 本地hosts文件错误???
- /etc/docker/daemon.json文件错误???
- harbor.yml文件修改问题???
- 修改完daemon.json没有重启docker服务???
- docker容器启动失败???
- docker与docker-compose或者是harbor与docker-compose版本不兼容???
3、解决方法
上面的问题已经全部排查,发现均正常
3.1 第一次尝试
- 我尝试从网页登录,在网页直接输入harbor里配置的密码登录
发现居然网页都登不进去,这就是密码问题,然后我尝试以下操作
1、删除所有的容器,从新调用./install.sh文件进行安装–>密码登录还是报错
2、删除所有的容器,删除harbor.tar.gz压缩包,从新上传解压安装–>密码登录还是报错
排除了安装包和docker服务版本的问题后,我怀疑本地有缓存,即使我删除了所有的容器也没有用
3.2 检查harbor的脚本
揣着怀疑的心态,我检查了install.sh脚本运行自动生成的docker-compose.yml文件,发先里面创建了大量的volume数据卷
- 存放log的
- 存放数据库的
- 存放缓存redis的
- 其他的volumes
- /data目录下所有的volumes
我测试删除所有的容器,发现这些目录依然存在,即使我删除harbor压缩包从新安装,依然会调用这些目录
而存放登录密码信息的就存放在数据库里
3.3 解决问题
找到了问题所在,解决就变得简单起来
3.3.1 方法1
最快的方法,删除/data目录和所有容器,排除占用的端口,删除docker-compose.yml,丛新运行install.sh脚本进行创建
3.3.2 方法2
如果生产环境中,harbor中已经存放了大量的镜像,不能删除容器,可尝试此方法
- 查看创建的容器
- 登录harbor-db这个容器,并登入psql数据库内,默认密码是root123
- 切换到registry这个数据库中,查看里面的表信息
- 找到harbor_user这个表->里面存放了登录的信息
- 查看密码的加密方式
- 修改登录密码为初始密码Harbor12345
update harbor_user set password='c999cbeae74a90282c8fa7c48894fb00', salt='nmgxu7a5ozddr0z6ov4k4f7dgnpbvqky' where username='admin';
- 从新登录成功
文章来源:https://www.toymoban.com/news/detail-448484.html
文章来源地址https://www.toymoban.com/news/detail-448484.html
到了这里,关于docker login 登录harbor报错:Error response from daemon: Get ...: unauthorized: authentication required的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!