尝试从以下位置将卷安装到我的容器docker run
命令。
似乎该文件夹始终以 root 用户而不是容器用户身份创建。这使得我缺乏对该文件夹的权限(无法创建或写入用于日志记录的文件)。
使用此命令进行一些测试:docker run -it --entrypoint /bin/bash -v $PWD/logs:/home/jboss/myhub/logs:rw myImage:latest
如果我现在执行命令:ls -ld /logs
我得到结果:drwxr-xr-x 2 root root 4096 Jun 12 13:01 logs/
在这里我们可以看到只有所有者拥有写权限。 root 是所有者。
我希望(我想要)jboss 成为该文件夹的所有者。或者至少所有用户都具有读/写权限:rw
选项中的-v
范围
我在这里不明白什么?我怎样才能让它按照我想要的方式工作?
目前,这是一个反复出现的问题,没有简单的答案。
我听说有两种常见的方法。
首先涉及到chown
在使用目录之前先对其进行编译。
RUN mkdir -p /home/jboss/myhub/logs ; chown -R jboss:jboss /home/jboss/myhub/logs
USER jboss
如果您需要使用不同的用户从主机系统访问文件,您可以chmod
您的应用程序使用您的 jboss 用户在容器内创建的文件。
$ chmod -R +rw /home/jboss/myhub/logs
第二种方法涉及使用适当的方法创建文件chmod
in Dockerfile
(或在您的主机系统中)在运行应用程序之前。
$ touch /home/jboss/myhub/logs/app-log.txt
$ touch /home/jboss/myhub/logs/error-log.txt
$ chmod 766 /home/jboss/myhub/logs/app-log.txt
$ chmod 766 /home/jboss/myhub/logs/error-log.txt
当然还有更多方法可以实现这一目标,但我还没有听说过任何更多的“本机”解决方案。
我想找到一种更简单/更实用的方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)