Docker服务卡死如何解决?

这两天正在学习使用Docker,具体地讲是使用WSL + Docker来配合使用的,

然后我工作完下班时也是正常关机的,到第二天上班开机之后发现,容器再也打不开,发生卡死,具体地也不清楚是服务卡死还是软件卡死,但是不管怎么说,是用不了的。

卡住了

太影响工作了,我配置的环境代码写好了,等着跑结果看的,这就开始了排除问题的过程。

第一步,回忆步骤

先退出了容器,然后关闭了WSL的ssh远程连接,
接下来我就关闭了win下的docker软件,随后关了电脑,
这么看起来是不是很完整的关机顺序?
但是实际上,现在我有点想通,估计是关闭WSL的ssh远程连接并没有中断其中的docker进程,但是谁又会搞那么麻烦?直接关机得了。
回忆到这里,其实已经明白了大概,接下来就开始解决问题。

第二步,STFW,寻找解决办法

解决方法总共有这么几种吧,

1. 重启

重启
俗话说的好,遇到问题重启能解决百分之八十的问题,
所以先试了简单的,邮件单击控制栏的图标,退出登录,不行。
好的,估计这只是个界面,那我重启服务,点restart,也不行。
这样直接对软件进行重启的办法,行不通。

2. WSL内重启

回到WSL

接下来想到,在win里面没有作用,然后服务又是在WSL中使用的,所以就切到WSL中,
首先打开VScode,由于已经配置好插件,直接Remote连接,
很快打开了新窗口,VScode自带的终端里就直接连接到了Ubuntu系统,
执行docker ps命令找容器,不行,docker命令直接失效,
好吧,那就docker stop 【CONTAINER_ID】,
得,这是不可能的,连ID都没有怎么停止呢,另外其实docker命令压根就没用了。

3. WSL内杀掉进程

docker命令没用了,进程掉了还是进程卡主?是死是活呢?
这时需要用到top命令来查看系统资源使用情况,不过top太命令行了,看花眼,
所以使用htop命令,显示更花哨一点,当然首先要安装一下,

sudo apt-get install htop

htop
htop启动后,看到是可以使用鼠标来操作的,
至于docker进程,则直接看VIRT:virtual memory usage,
排在头一位的,即是docker进程,
按F9然后选择第9项,SIGKILL,结束它
结束不了,搞错了,需要管理员权限,运行sudo htop,重复上述操作
终于杀掉进程,之后就会看到提示重启,这说明服务关闭了,
但是这里点了也没用,还有一步未完成
restart
但是现在只是终结了WSL中的docker服务,win下的还在卡顿,
所以再来一波win下的结束任务。

终于,docker服务重启成功!
重启成功

第三步,预防问题发生

预防最直接的方式,可能就是使用完后再WSL手动关闭docker服务,再关机?
这么复杂的吗?还是哪里我没有理解?欢迎评论教教我,感激不尽。

预防问题发生是必要的,因为每次关机我不可能那么仔细,今天一看又卡死了,软件可以登录docker hub账号,但是容器服务整个启动不了,这该如何是好?
重复第三步?也是可以的,但是这肯定不是最好的方案,
但是目前我还不会别的,也没有摸清这个问题该如何更方便地解决,
所以只能是在此立个flag,预防措施留作后话。。。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐