问题现象:
使用harbor 的install.sh 创建docker-compose之后,出现nginx容器一直重启。
查看日志发现是:配置文件无权限。报错信息如下:
Sep 2 16:43:13 172.28.0.1 nginx[1344]: 2024/09/02 08:43:13 [emerg] 1#0: open() “/etc/nginx/nginx.conf” failed (13: Permission denied)
Sep 2 16:43:13 172.28.0.1 nginx[1344]: nginx: [emerg] open() “/etc/nginx/nginx.conf” failed (13: Permission denied)
排查思路:
确定宿主机文件权限:为root用户
确定容器的启动用户:
docker inspect nginx |grep -i user
确定容器的用户uid,因为容器一直重启,所以不能进容器查看,采用启动一个相同镜像的容器查看:
docker run -it --rm goharbor/nginx-photon:v2.11.1 id nginx
确定宿主机的权限为root,但是容器是nginx用户启动,确定在容器中打不开对应的配置文件。
问题解决
修改宿主机的文件夹权限。(其他方法也可以,只要能让容器有权限读取到宿主机的文件)
chown 10000:10000 -R nginx
验证问题解决: