我已经和码头工人玩了一段时间了,我在解压缩容器内运行的服务的日志文件目录时遇到了问题。
我的Dockerfile如下所示:
ENV HOME=/software/service
ENV LOGS=$HOME/logs
COPY Service.jar $HOME/Service.jar
WORKDIR HOME
CMD java -jar Service.jar
我为此创建了一个存根服务,他所做的就是在log.log
环境变量中创建日志文件名LOGS
并每隔2秒写入一次。
我想要实现的是备份我的docker linux主机中的log.log
文件。在阅读了一些关于多个选项的内容之后,我遇到了两种流行的数据持久解决方案:
docker run -v
选项选项2在这里没有多大帮助,因为我想查看我的linux主机内的日志,所以我选择了选项1.
选项1的问题是它创建了具有root
权限的日志,这意味着我必须登录到root才能删除这些日志,这可能会导致问题而不是每个人应该有root用户,删除日志是常见的事情。
所以我读了一点,找了很多"解决问题"对于这个问题,有人将我的/etc/group
和/etc/passwd
文件放在docker中并使用-u
选项,其他文件与此类似。
我的主要问题是,针对此问题是否有任何方便和标准的解决方案,在使用/ -v
选项的情况下提取日志文件,同时让整个组权限rwx
。
谢谢!
答案 0 :(得分:0)
由于您希望日志位于主机中,因此您需要某种卷共享和" -v" flag绝对是你能做的最简单的事情。
根据权限问题,我看到两个选项:
-u
标志我认为选项1虽然棘手,但最容易应用。
答案 1 :(得分:0)
另一种选择是简单地将日志复制到主机:
docker cp <container-name>:/software/service/logs .