背景:

在访问harbor镜像仓库时提示报错如下:

问题分析:

根据提供的报错内容来看时harbor服务的nginx组件服务异常了的,导致无法访问harbor服务,查看harbor服务结果如下:

service@harbor:~/harbor$ docker-compose ps
       Name                     Command                 State                                   Ports                              
-----------------------------------------------------------------------------------------------------------------------------------
harbor-adminserver   /harbor/start.sh                 Up                                                                           
harbor-core          /harbor/start.sh                 Up                                                                           
harbor-db            /entrypoint.sh postgres          Up           5432/tcp                                                        
harbor-jobservice    /harbor/start.sh                 Up                                                                           
harbor-log           /bin/sh -c /usr/local/bin/ ...   Up           127.0.0.1:1514->10514/tcp                                       
harbor-portal        nginx -g daemon off;             Restarting                                                                   
nginx                nginx -g daemon off;             Up           0.0.0.0:443->443/tcp, 0.0.0.0:4443->4443/tcp, 0.0.0.0:80->80/tcp
redis                docker-entrypoint.sh redis ...   Up           6379/tcp                                                        
registry             /entrypoint.sh /etc/regist ...   Up           5000/tcp                                                        
registryctl          /harbor/start.sh                 Up                     

根据docker-compose ps查询的内容来看,是harbor-portal组件服务异常了,导致了nginx组件服务也异常了。

这时候查看harbor服务各个组件的健康状态情况,通过docker ps服务查看

service@harbor:~/harbor$ docker ps -a
CONTAINER ID        IMAGE                                    COMMAND                  CREATED             STATUS                       PORTS                                                              NAMES
3fc9f7342c5d        goharbor/nginx-photon:v1.7.1             "nginx -g 'daemon ..."   3 months ago        Up 13 hours (unhealthy)      0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp, 0.0.0.0:4443->4443/tcp   nginx
6eee31ef2bfc        goharbor/harbor-jobservice:v1.7.1        "/harbor/start.sh"       3 months ago        Up 13 hours                                                                                     harbor-jobservice
321ef98c530a        goharbor/harbor-portal:v1.7.1            "nginx -g 'daemon ..."   3 months ago        Restarting (1) 6 hours ago                                                                      harbor-portal
fed5f6eaf486        goharbor/harbor-core:v1.7.1              "/harbor/start.sh"       3 months ago        Up 13 hours (healthy)                                                                           harbor-core
122bbc2f6b56        goharbor/harbor-registryctl:v1.7.1       "/harbor/start.sh"       3 months ago        Up 13 hours (healthy)                                                                           registryctl
7be0ed1ad358        goharbor/harbor-db:v1.7.1                "/entrypoint.sh po..."   3 months ago        Up 13 hours (healthy)        5432/tcp                                                           harbor-db
2448c27d1db9        goharbor/registry-photon:v2.6.2-v1.7.1   "/entrypoint.sh /e..."   3 months ago        Up 13 hours (healthy)        5000/tcp                                                           registry
d7a2691f9a2c        goharbor/harbor-adminserver:v1.7.1       "/harbor/start.sh"       3 months ago        Up 13 hours (healthy)                                                                           harbor-adminserver
d987bcb50630        goharbor/redis-photon:v1.7.1             "docker-entrypoint..."   3 months ago        Up 13 hours                  6379/tcp                                                           redis
d7df267a0dc9        goharbor/harbor-log:v1.7.1               "/bin/sh -c /usr/l..."   3 months ago        Up 13 hours (healthy)        127.0.0.1:1514->10514/tcp                                          harbor-log

这里可以发现nginx处于unhealthy,不健康的状态。

这时候需要分析harbor-portal组件服务为什么报错了,因为harbor使用了syslog服务作为存放日志,所以我们只需要到/var/log/harbor目录下找到对应的服务日志文件查看即可。

service@harbor:/var/log/harbor$ tail -1000f portal.log
........
Jun  4 03:58:54 localhost portal[119121]: 2024/06/03 19:58:54 [emerg] 1#0: mkdir() "/etc//nginx/client_body_temp" failed (13: Permission denied)
Jun  4 03:58:54 localhost portal[119121]: nginx: [emerg] mkdir() "/etc//nginx/client_body_temp" failed (13: Permission denied)

根据日志的提示是portal容器在运行的时候需要创建/etc/nginx/client_body_temp目录,但是提示权限不足无法创建。

问题解决方案:

这里的处理方案就是重新创建portal服务即可。

先停止harbor-portal服务

service@harbor:~/harbor$ docker-compose stop portal
Stopping harbor-portal ... done
                                                   

查看是否已经停止掉harbor-portal服务 

service@harbor:~/harbor$ docker-compose ps
       Name                     Command               State                                 Ports                              
-------------------------------------------------------------------------------------------------------------------------------
harbor-adminserver   /harbor/start.sh                 Up                                                                       
harbor-core          /harbor/start.sh                 Up                                                                       
harbor-db            /entrypoint.sh postgres          Up       5432/tcp                                                        
harbor-jobservice    /harbor/start.sh                 Up                                                                       
harbor-log           /bin/sh -c /usr/local/bin/ ...   Up       127.0.0.1:1514->10514/tcp                                       
harbor-portal        nginx -g daemon off;             Exit 1                                                                   
nginx                nginx -g daemon off;             Up       0.0.0.0:443->443/tcp, 0.0.0.0:4443->4443/tcp, 0.0.0.0:80->80/tcp
redis                docker-entrypoint.sh redis ...   Up       6379/tcp                                                        
registry             /entrypoint.sh /etc/regist ...   Up       5000/tcp                                                        
registryctl          /harbor/start.sh                 Up                    

重建harbor-portal服务

service@harbor:~/harbor$ docker-compose up portal
Creating harbor-portal ... done
harbor-adminserver is up-to-date
registry is up-to-date
harbor-core is up-to-date
Creating harbor-portal ... 
Attaching to harbor-portal
harbor-portal  | WARNING: no logs are available with the 'syslog' log driver
harbor-portal exited with code 0

验证harbor-portal服务是否恢复,nginx服务是否也是恢复了

service@harbor:~/harbor$ docker-compose ps
       Name                     Command               State                                Ports                              
------------------------------------------------------------------------------------------------------------------------------
harbor-adminserver   /harbor/start.sh                 Up                                                                      
harbor-core          /harbor/start.sh                 Up                                                                      
harbor-db            /entrypoint.sh postgres          Up      5432/tcp                                                        
harbor-jobservice    /harbor/start.sh                 Up                                                                      
harbor-log           /bin/sh -c /usr/local/bin/ ...   Up      127.0.0.1:1514->10514/tcp                                       
harbor-portal        nginx -g daemon off;             Up      80/tcp                                                          
nginx                nginx -g daemon off;             Up      0.0.0.0:443->443/tcp, 0.0.0.0:4443->4443/tcp, 0.0.0.0:80->80/tcp
redis                docker-entrypoint.sh redis ...   Up      6379/tcp                                                        
registry             /entrypoint.sh /etc/regist ...   Up      5000/tcp                                                        
registryctl          /harbor/start.sh                 Up                 
service@harbor:~/harbor$ docker ps 
CONTAINER ID        IMAGE                                    COMMAND                  CREATED             STATUS                   PORTS                                                              NAMES
9d729ec76f0c        goharbor/harbor-portal:v1.7.1            "nginx -g 'daemon ..."   2 minutes ago       Up 2 minutes (healthy)   80/tcp                                                             harbor-portal
3fc9f7342c5d        goharbor/nginx-photon:v1.7.1             "nginx -g 'daemon ..."   3 months ago        Up 14 hours (healthy)    0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp, 0.0.0.0:4443->4443/tcp   nginx
6eee31ef2bfc        goharbor/harbor-jobservice:v1.7.1        "/harbor/start.sh"       3 months ago        Up 14 hours                                                                                 harbor-jobservice
fed5f6eaf486        goharbor/harbor-core:v1.7.1              "/harbor/start.sh"       3 months ago        Up 14 hours (healthy)                                                                       harbor-core
122bbc2f6b56        goharbor/harbor-registryctl:v1.7.1       "/harbor/start.sh"       3 months ago        Up 14 hours (healthy)                                                                       registryctl
7be0ed1ad358        goharbor/harbor-db:v1.7.1                "/entrypoint.sh po..."   3 months ago        Up 14 hours (healthy)    5432/tcp                                                           harbor-db
2448c27d1db9        goharbor/registry-photon:v2.6.2-v1.7.1   "/entrypoint.sh /e..."   3 months ago        Up 14 hours (healthy)    5000/tcp                                                           registry
d7a2691f9a2c        goharbor/harbor-adminserver:v1.7.1       "/harbor/start.sh"       3 months ago        Up 14 hours (healthy)                                                                       harbor-adminserver
d987bcb50630        goharbor/redis-photon:v1.7.1             "docker-entrypoint..."   3 months ago        Up 14 hours              6379/tcp                                                           redis
d7df267a0dc9        goharbor/harbor-log:v1.7.1               "/bin/sh -c /usr/l..."   3 months ago        Up 14 hours (healthy)    127.0.0.1:1514->10514/tcp                                          harbor-log

这时候发现nginx服务也是healthy状态了,然后去浏览器上访问一下:

然后去输入账号密码即可。

GitHub 加速计划 / ha / harbor
23.24 K
4.68 K
下载
Harbor 是一个开源的容器镜像仓库,用于存储和管理 Docker 镜像和其他容器镜像。 * 容器镜像仓库、存储和管理 Docker 镜像和其他容器镜像 * 有什么特点:支持多种镜像格式、易于使用、安全性和访问控制
最近提交(Master分支:2 个月前 )
9e55afbb pull image from registry.goharbor.io instead of dockerhub Update testcase to support Docker Image Can Be Pulled With Credential Change gitlab project name when user changed. Update permissions count and permission count total Change webhook_endpoint_ui Signed-off-by: stonezdj <stone.zhang@broadcom.com> Co-authored-by: Wang Yan <wangyan@vmware.com> 9 天前
3dbfd422 Signed-off-by: wang yan <wangyan@vmware.com> 10 天前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐