在k8s生产环境使用中,避免不了要对所有容器的日志进行收集,最简单高效的方法就是在宿主上收集所有Docker容器中应用日志,通常需要在制作镜像时将应用日志输出到前台即可,Docker推荐一个容器跑一个程序,如果多个程序就需要用其他手段去启动多余的程序,这里简单介绍下supervisor,supervisor是可以在Docker中管理多个程序,被supervisor接管后,之前的将应用日志软链接到/dev/stdout就变成无效,需要重新到supervisor重新进行配置,才能将日志输出到前台
环境:
Centos 7.4 64bit 镜像
supervisor 3.1.4
nginx 1.14.0
php 5.6.36
安装supervisor,Docker镜像中安装需要用dockerfile对原镜像做升级,或者启动一个镜像容器然后进入该容器安装后再对该容器重新生成镜像,进去该容器后的安装可以看成宿主一样的方式
yum install supervisor
配置supervisor,打开supervisor配置文件
vi /etc/supervisord.conf
[program:ssh]
command = /usr/sbin/sshd -D
;autorestart=true
autostart=true
[program:nginx]
command = /usr/sbin/nginx -g 'daemon off;'
autostart=true
autorestart=true
;stopsignal=QUIT
priority=10
stdout_events_enabled=true
stderr_events_enabled=true
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0
[program:php]
command = /usr/sbin/php-fpm --nodaemonize
autostart=true
autorestart=true
保存退出
最新评论