当我将一个sinatra应用程序dockerize时,应用程序的日志文件会发生什么?
问这个问题甚至是有道理的,看看容器是一个短暂的对象? 如果应用程序的日志没有被redirect到一个持久的服务(他们不是),他们甚至没有保存在容器的(临时)文件系统?
首先,Docker容器不一定是一个短暂的对象。 如果你做一个:
docker stop <container-id>
这些文件保留在/var/lib/docker/aufs/mnt/<container-id>
目录中(或者任何Docker主目录。
你可以运行:
docker start <container-id>
重新启动容器,同样的容器会出现。 对于你删除容器,你将不得不做一个:
docker rm <container-id>
现在回到你的日志文件的问题,这取决于你在哪里login。 你logging到一个文件? stdout? 如果你正在登陆一个文件,那么文件应该位于/var/lib/docker/aufs/mnt/<container-id>
或/var/lib/docker/aufs/mnt/<container-id>/var/log/app.log
或放置日志文件的位置。