如何查看PHP的日志信息与PHPdocker容器?
我有一个php-fpmdocker集装箱。 Php-fpm在容器内部运行,我可以在主机上获得php-fpm的日志吗? 如果可以,怎么办?
常用的方法是容器内的应用程序不会login到文件 ,而是在stdout
/ stderr
上输出日志。 任何由容器的主进程打印到stdout
/ stderr
都由stderr
的内置日志工具来收集,并且可以使用docker logs <container-name>
来查看。
默认情况下,日志使用json-file
日志logging驱动程序存储在每个容器中,并且在容器本身被删除时将被删除,但还有其他日志logging驱动程序可用(请参阅configuration日志logging驱动程序 ),以便将这些日志发送到(例如) syslog
, journald
, gelf
。
另见
- 查看容器的日志
-
docker logs
Docker容器的标准是login到stdout
/ stderr
。 但是,对于某些PHP运行时(例如php-fpm
,这并不适用,因为日志的长度和格式会发生变化 。
因此,我将自己的方法转换为在卷上写入日志,并使用sidecar容器将其放入stderr
然后放入Docker的日志收集器和/或您的Orchestrator中。
示例docker-compose.yml
部分:
cli: build: . volumes: - logs:/srv/annotations/var/logs logger: image: busybox:1.27.2 volumes: - logs:/logs # be careful, this will only tail alredy existing files command: tail -f /logs/all.json depends_on: - cli