前一阵子,由于客户在不知情的情况下,擅自在已安装docker服务的服务器上再次安装docker服务,并且在其没有安装成功的情况下,擅自非常规的进行docker服务的卸载,导致docker服务没有成功卸载,应用所使用的docker服务也出现了无法启动,无法结束docker进程的问题。因此我计划将docker服务卸载,再重新安装。但是卸载过程中发现卸载进程会一直卡在**Transaction running**的进度,无法完成卸载。

出现上述现象导致无法卸载的原因是,当前卸载docker服务正在运行,因此需要将其停止后再进行卸载。但是直接kill docker进程时会出现无法kill的情况。排查时发现执行命令ps -ef|grep docker始终有一条docker的进程在运行,kill后会自行拉起。执行命令ps -ef|grep containerd,可以看到有多个containerd进程运行。由于docker底层依赖于containerd服务,因此判定是由于containerd服务将docker服务不停的拉起。因此如下图所示,kill掉红框内的containerd进程。

以上操作以后,再执行命令ps -ef|grep docker,就没有了docker的进程。而后再进行卸载操作即可正常卸载。

Logo

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

更多推荐