我有一个Python Tornado服务器,我最近一直在尝试Dockerize。我唯一不能解决的问题就是日志。以前,服务器使用logging模块将日志写入其目录中的文件。但是,当作为容器运行时,根本不会写入任何日志,即使在容器的文件系统中也是如此。我尝试创建新文件,但也不起作用。结论似乎是应用程序不能修改其容器的文件系统,但这对我来说毫无意义。
我还阅读了有关卷和将容器目录绑定到主机目录的内容。我也尝试过,但仍然没有创建或写入任何文件。
我知道我可能可以通过将服务器的日志重定向到stdout & stderr并使用docker日志记录来解决日志记录问题,但我想了解为什么容器的文件系统似乎是不可变的。
发布于 2021-09-19 15:27:57
容器的文件系统不是不可变的,但是日志文件并没有写入其中。它们不应该是;如果它们是,当容器停止时,您将丢失日志。
您已经在使用docker日志:“默认情况下,Docker捕获所有容器的标准输出(和标准错误),并使用JSON格式将它们写入文件”,并使用默认的json-file logging driver。
有关配置日志的信息,请参阅Docker文档:https://docs.docker.com/config/containers/logging/configure/
在主机上创建日志文件:
/var/lib/docker/containers/<container_id>/<container_id>-json.log您通过以下方式跟踪来自主机的日志
docker logs -f <container_id>https://stackoverflow.com/questions/69207065
复制相似问题