Logging 当我对sinatra应用程序进行dockerize时,该应用程序会发生什么';谁的日志文件?

Logging 当我对sinatra应用程序进行dockerize时,该应用程序会发生什么';谁的日志文件?,logging,docker,sinatra,Logging,Docker,Sinatra,看看容器是如何工作的,问这个问题有意义吗 是短暂的物体吗?如果应用程序的日志未重定向到 持久性服务(它们不是),它们甚至不保存在 容器的(临时)文件系统?首先,Docker容器不一定是临时对象。如果您执行以下操作: docker stop <container-id> docker站 这些文件保留在您的/var/lib/docker/aufs/mnt/目录中(或docker home dir是什么) 您可以运行: docker start <container-id>

看看容器是如何工作的,问这个问题有意义吗 是短暂的物体吗?如果应用程序的日志未重定向到 持久性服务(它们不是),它们甚至不保存在
容器的(临时)文件系统?

首先,Docker容器不一定是临时对象。如果您执行以下操作:

docker stop <container-id>
docker站
这些文件保留在您的
/var/lib/docker/aufs/mnt/
目录中(或docker home dir是什么)

您可以运行:

docker start <container-id>
docker启动
要重新启动容器,将出现相同的容器。要删除容器,必须执行以下操作:

docker rm <container-id>
docker-rm

现在回到日志文件的问题,这取决于您登录的位置。您是否登录到文件?stdout?如果您登录到文件,那么文件应该位于
/var/lib/docker/aufs/mnt/
/var/lib/docker/aufs/mnt//var/log/app.log
或您放置日志文件的任何位置。

sin出了什么问题我一直在使用atra应用程序进行测试。如果我在任何其他应用程序中替换它,无论是rails、perl,甚至bash,stdout日志记录都可以很好地工作。因此,关闭这个应用程序。那么,有什么最佳做法可以处理docker容器中服务的日志记录输出吗?我觉得每个人和他们的母亲都有自己的解决方案:-/@Manuel我在这里回答了一点:另请参阅: