Docker容器消耗资源过多导致宿主机死机解决方案
问题情况
打开了一个Docker容器,该容器消耗系统资源超过所拥有的系统资源本身,导致机器卡死。该容器设置能通过云服务商的VNC应急连接。
了always
启动策略,每次重启都会自动启动容器。无法连接到SSH,也无法打开Web管理面板,只
解决方案
将Docker服务完全停止,然后禁用或者删除出现问题的Dockers容器,最后重启Docker服务恢复业务。
具体操作
- 连接到VNC,输入账号密码连接设备(如果SSH仍然能正常工作的情况可以使用SSH直接登录)。
- 停止并停用Docker服务。
systemctl stop docker
systemctl disable docker
- 重启服务器以彻底的关闭Docker服务,此时容器已经全部停止运行。
- 转到
/var/lib/docker/containers/
目录,查看目录。 - 逐一找到有问题的容器(开启哪个容器导致的死机就找哪个容器),可以进入目录查看
config.v2.json
或者hostconfig.json
来判断容器。 - 停用或删除容器
- 如果删除容器,请返回容器的上一级目录,使用万恶的
rm -rf [容器id]
删除容器。 - 如果停用容器,需要打开
hostconfig.json
,并将RestartPolicy
的name
改为never
。然后打开config.v2.json
,将State
的Running
参数改为False
。
- 如果删除容器,请返回容器的上一级目录,使用万恶的
- 启用并启动Docker服务。
systemctl enable docker
systemctl start docker
- 检查Docker状态,确保Docker已经正常运行。
systemctl status docker
忠告!!!
操作服务器环境之前要先打快照!!!