**1、起因 (docker 所有容器突然之间卡死, 没有任何日志输出) **
怀疑一: 以为是昨天上线代码导致,所以审查了一遍代码,发现并无异常之处 -- 排除
怀疑二: 因为我们程序在消费mq的数据且每次消费都有日志,因此怀疑是不是mq卡死在一个点了。 经过检查之后,发现确实卡死在一个 mq的offset上, 但经过仔细排查,发现所有的 topic 都卡死了。因此怀疑可能并不是由 mq 卡死导致,就是程序容器卡死
2、尝试
尝试一: 尝试 docker stop container 命令, 发现无济于事。 尝试失败!
尝试二: 尝试 docker kill container 命令, 同样无济于事。 尝试失败!
此时我们发现,所有容器都无法stop 和 kill 掉。 这时我们怀疑是 docker 出现了问题。
3、排查
排查: 查看容器是不是共用的 插件 , 发现我们所有的容器都会将容器日志打印到 es 中。恰好有其他同事在近一两个小时内修改过 es 的配置, (之前是不需要用户名密码的,现在需要了)
4、总结
原因就是:
我们所有的容器将日志都通过 docker plugin 传输到 es中去了,因为es增加了权限验证 。所以导致docker的日志发送不过去了。 然后docker 就把自己给卡死了。一并的将所有容器都给卡死了。
解决办法:
将连接的es 配置好用户名和密码 ! 重启 docker进程就好了