如何使用php docker容器查看php日志信息?

时间:2017-04-01 12:22:17

标签: php docker containers

我有一个php-fpm docker容器。 Php-fpm在容器内部运行,我可以通过php-fpm登录主机吗?如果我可以,怎么办?

2 个答案:

答案 0 :(得分:4)

常见的方法是容器内的应用程序不会记录到文件,而是在stdout / stderr上输出日志。由容器的主进程打印到stdout / stderr的任何内容都由docker的内置日志记录工具收集,并且可以使用docker logs <container-name>进行查看。

默认情况下,使用json-file日志记录驱动程序按容器存储日志,并在删除容器本身时删除日志,但还有其他日志驱动程序可用(请参阅Configure logging drivers)允许您将这些日志发送到(例如)syslogjournaldgelf

另见

答案 1 :(得分:0)

Docker容器的标准是登录stdout / stderr。但是,对于某些PHP运行时(例如php-fpm),这不起作用,因为日志在lengthformat中会受到严重影响。

因此,我改变了我的方法,在卷上写日志并使用sidecar container将其放入stderr,从而进入Docker的日志集合和/或您的协调器。

示例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