持续登录Docker容器重启

时间:2017-09-20 12:36:29

标签: docker .net-core docker-swarm unhandled-exception

所以我有一个微服务作为.NET Core下的Docker容器运行,并在Azure上记录到Application Insights,因为它将从EventHub提取的大量数据写入SQL Server。

每隔一段时间我就会得到一个未处理的SqlException,它似乎被抛出在后台线程上,这意味着我无法捕获并处理它,也无法解决这个bug。

解决方法是将重新启动策略设置为always并重新启动服务。这很有效,但现在我无法在Application Insights中跟踪此异常。

我认为未处理的异常是由CLR写入stderr所以它在Docker日志中出现了一些grepping,但有没有办法在启动时检查它,然后将其记录到Application Insights,这样我就可以发现它没有登录Swarm集群和grep重启信息?

1 个答案:

答案 0 :(得分:0)

要保留日志,

方法1

将docker日志目录挂载到主机。

示例:

docker run -name Container_1 -v / host_dir / logs:/ var / log / app docker_image:version

Docker容器会在/ var / log / app目录中写入日志。现在,对于docker restart,主机的/ host_dir / logs目录中也会保留这些日志。

方法2

配置日志驱动程序,如syslog或fluentd in docker。您可以查看https://docs.docker.com/engine/admin/logging/overview/进行配置。