首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >docker tomcat日志问题

docker tomcat日志问题
EN

Stack Overflow用户
提问于 2016-06-28 14:35:13
回答 3查看 14.2K关注 0票数 6

Docker容器只能进入守护模式:我运行catalina.sh来启动tomcat。

但问题是我的日志不会出现在catalina.out中。

我可以查看`docker日志,但这肯定不能在生产环境中运行。

我想问一下,在生产环境中,如何在不停止容器的情况下将Tomcat日志存储在文档中?

EN

回答 3

Stack Overflow用户

发布于 2016-06-28 14:45:57

如果你看一下官方的tomcat docker image,它会运行

代码语言:javascript
复制
CMD ["catalina.sh", "run"]

这对starts tomcat in the foreground, displaying the logs on the console来说已经足够了。

但是,正如您所说,这可能不会填充到catalina.out中。

一个alternative would be

代码语言:javascript
复制
CMD service tomcat start && tail -f /var/lib/tomcat/logs/catalina.out
票数 3
EN

Stack Overflow用户

发布于 2016-06-28 19:51:28

this (关闭主题)问题中有一些选项可以让tomcat日志在前台运行。

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

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

票数 3
EN

Stack Overflow用户

发布于 2016-06-28 15:23:58

您需要在docker容器中的前台运行一个进程,才能让容器运行。

我对我所有的docker图像都使用了hack。使用以下代码创建脚本run.sh

代码语言:javascript
复制
#!/bin/sh

service tomcat start
tail -f /dev/null

确保在docker中运行run.sh文件之前,更改权限。

添加到Dockerfile将是

代码语言:javascript
复制
COPY run.sh ./run.sh
RUN chmod 755 ./run.sh
CMD ["./run.sh"]
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38068719

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档