问题现象:
用官方harbor 2.7.3的离线安装包,无法启动harbor,报以下错误
Error response from daemon: failed to initialize logging driver: dial tcp 192.168.2.11:1514: connect: connection refused
1:docker-compose启动失败,但是docker ps可以看到harbor-log是成功启动的。
2: docker-compose logs core 查看其他容器的日志
问题原因:
harbor的其他组件,如harbor-core,harbor-db等,都依赖harbor-log,默认harbor-log的访问地址是127.0.0.1:1514;如下图所示
为什么localhost会被解析成192.168.xxx地址呢?——这是因为我服务器的/etc/hosts不知何时被修改了
解决方法
把localhost重新修改成127.0.0.1,重启harbor 成功
排查过程
这个问题花了很长时间去解决,网上找到的一堆资料,提到的几种方法都未能解决。
(1)重启rsyslog服务——事实上,harbor依赖的syslog服务,默认都是其内部的,即harbor-log中提供的,所以重启宿主机的rsyslog服务根本没作用。
(2)修改宿主机/etc/rsyslog.conf文件,把514端口改成1514,并开放。——问题还是一样,harbor就不应该依赖宿主机的rsyslog服务。
(3)删除harbor所有镜像,重新安装——对我没有用