事故场景:


因为要在服务器上安装一个服务软件,习惯性地使用了 yum update -y 命令,结果更新完毕后,Docker 上运行的所有服务都挂了,导致后台服务程序全部运行异常,最后检测才发现是 Docker 重启了,但服务没有启动成功。

事故原因:


这次事故的主要原因是 yum update -y 这个命令,查看 yum 命令的帮助手册可以发现如下解释:

update 
	If run without any packages, update will update every currently installed package. 
	If one or  more  packagesor  package globs are specified, Yum will only update the listed packages.

大概的意思是:如果 yum update 后面没有指定要更新的包名的话会更新所有已安装的包,只有指定了包名才更新指定的安装包。

并且,如果使用了 -y 参数的话会直接进行更新,而不会询问你是否进行更新。结果刚好服务器上的 Docker 有更新,yum 就直接给 Docker 进行了升级,最后导致 Docker 重启,重启后本来里面的服务会自动重新 run 的,但由于某种原因导致未能重新运行起来。

总结:


还好这次是在开发服务器上进行的更新操作,并没有影响到正式环境的服务,不然问题就大了。所以,更新有风险,操作需谨慎! 如果要进行 yum update 的话,应该要指定更新那个包。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐