容器使用docker run -v hostvolume:dockervolume,采用这种方式运行如果出现permission denied是因为宿主机的当前运行用户和docker容器里面的运行用户不一致导致访问权限问题。
解决办法:
1、使docker里面的运行用户和宿主一样,运行命令 docker run -u root,docker u参数可以指点以哪个用户运行。
2、在宿主机里面创建和容器默认用户一样的,然后把要映射的文件目录使用chown -R user:group方式修改为docker例的用户。
注意:这里需要查看docker镜像里的制作文件dockerfile。比如EMQ容器制作就如下添加用户
RUN adduser -D -u 1000 emqtt
本文探讨了在使用Docker容器时遇到的permission denied错误,分析了错误产生的原因,即宿主机用户与容器内用户不一致导致的访问权限问题,并提供了两种解决策略:一是调整容器内的运行用户与宿主机保持一致;二是更改宿主机上的文件所有权,使之匹配容器内的用户。
1717

被折叠的 条评论
为什么被折叠?



