2016-06-28 254 views
2

Docker容器只能进入守护进程模式:我运行catalina.sh来启动tomcat。
但问题是我的日志不会出现在catalina.outdocker tomcat日志问题

我可以看看Docker日志,但这肯定无法在生产环境中运行。
我想问一下,在生产环境中,我可以如何将Tomcat日志存储在文档中并且没有容器停止?

+0

我是一个码头初学者认为 – zhangyi

+0

你可以添加整个'码头运行'命令和一些信息,如'码头ps'和'码头ps -a' – user2915097

回答

0

你需要有一个过程在前台运行的泊坞窗容器具有容器中运行。

我用我所有的码头图像hack。 创建与下面的代码

#!/bin/sh 

service tomcat start 
tail -f /dev/null 

脚本run.sh确保您运行泊坞窗run.sh文件之前,更改权限。

加成Dockerfile将

COPY run.sh ./run.sh 
RUN chmod 755 ./run.sh 
CMD ["./run.sh"] 
+1

你的破解是不好的做法!这意味着码头日志变得毫无用处,获取tomcat日志变得非常困难,并且您的进程可以在没有容器退出的情况下退出。这些都是坏事!看到接受的答案在这里更好(更多的dockerey)方式:):http://stackoverflow.com/questions/14010448/how-to-start-tomcat-with-output-on-console-in-linux – Nauraushaun

+0

不能说这是一个不好的做法,但可能有更好的方法来做东西。 由于docker需要一个进程在前台运行。 我在ubuntu上安装了一个ejabbered服务器,作为服务启动,在这种情况下,需要有一个前台进程。 –

1

有在this(题外话)问题的选项,使tomcat的日志在前台运行。

但是要回答您的实际问题,码头日志命令是从容器中获取日志的常用方法。您也可以在主机上找到它们,因为它们位于文件中。

但最好的方法是使用外部日志记录服务来收集和聚合日志,因此您不必登录到生产服务器。 Logentries就是一个例子(尽管它远非完美)。 Splunk是另一个。 Docker logging drivers docs可能会有所帮助。