我有一个php-fpm docker容器。 Php-fpm在容器内部运行,我可以通过php-fpm登录主机吗?如果我可以,怎么办?
答案 0 :(得分:4)
常见的方法是容器内的应用程序不会记录到文件,而是在stdout
/ stderr
上输出日志。由容器的主进程打印到stdout
/ stderr
的任何内容都由docker的内置日志记录工具收集,并且可以使用docker logs <container-name>
进行查看。
默认情况下,使用json-file
日志记录驱动程序按容器存储日志,并在删除容器本身时删除日志,但还有其他日志驱动程序可用(请参阅Configure logging drivers)允许您将这些日志发送到(例如)syslog
,journald
,gelf
。
另见
答案 1 :(得分:0)
Docker容器的标准是登录stdout
/ stderr
。但是,对于某些PHP运行时(例如php-fpm
),这不起作用,因为日志在length和format中会受到严重影响。
因此,我改变了我的方法,在卷上写日志并使用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