Docker Harbor-ui 启动失败问题排查

issues

测试环境,重启Docker服务之后,原本部署的Docker Harbor突然不能使用了,访问Harbor,返回502,Bad GateWay。

排查思路

进入Harbor目录,执行启动命令

1
docker-compose up

结果显示 harbor-ui exit with code 1

检查Harbor的log信息


发现harbor-ui访问harbor-mysql被拒绝了。

检查harbor-mysql 和 harbor-ui的信息

1
2
docker inspect harbor-ui
docker inspect harbor-mysql

其中,harbor-mysql的IP地址是172.20.0.3, 从上面的log信息可以知道harbor-ui启动的时候ip地址是172.20.0.6. 对比前后的运行情况,基本可以判定,mysql初始化时候的授权应该是指定了某个IP段的才有权限,重启docker后,有可能网桥被修改了。

查看网络docker0

发现docker0的网段是10.10.14.129/24

删除docker0网桥,重启docker。

docker0的网段变为 172.19.0.0/16

重启Harbor,服务依然不可用。此时,问题就是harbor的数据已经被持久化到了磁盘上。找到harbor的数据文件位置 /data/database ,删除数据文件。
重启Harbor,服务正常。