10月 12, 2024 - docker    docker容器中nginx用户生成的文件变成了mysql或其它用户已关闭评论

docker容器中nginx用户生成的文件变成了mysql或其它用户

1:docker容器中使用的nginx用户ID是1001,但最后自动生成的日志文件变成了mysql用户

原因:容器用户1001,会自动生成1001用户的文件,但由于宿主机中的1001是mysql则映射到宿主机中会变成了mysql.

可以使用:cat /etc/group查看用户组

解决,修改宿主机中运行代码的用户和用户组为1001,命令如下:

先把mysql服务或www用户相关的服务(php和docker等)停止。

修改占用1001的mysql的ID为其它ID

usermod -u 1004 mysql
groupmod -g 1004 mysql

修改www的用户和用户组ID为1001

usermod -u 1001 www
groupmod -g 1001 www

修改后,有root用户将项目所属人改为www: chown www: -R project。再删除docker容器后重新启动容器,删除原有的错误日志文件。

再次查看容器中nginx用户自动生成的文件所属人就是宿主机的www用户了:

评论被关闭。