docker服务无法启动container的TOS大招

内容纲要

概要描述

本文主要为了解决当docker服务出现问题,导致TOS Master的etcd,api,controller等容器无法正常启动的终极解决方法。

详细说明

1 TOS Master状态为not running

docker ps | grep etcd
docker ps | grep apiserver
docker ps | grep scheduler

以上服务均没有docker container启动。

2 查看docker服务的状态

systemctl status docker

file

3 查看docker的日志信息

journalctl -u docker

file

和docker的服务状态都报错:
time="2020-01-10T15:59:01.088526607+08:00" level=error msg="Handler for GET /v1.31/images/sha256:128c9e26297acce8f97b36462f2a94042a283821761c915ed07228c815b11861/json returned error: stat /var/lib/docker/overlay2/0b338cc678565baa32fa0c82523d26eea517f0d08de7efa92b454827bfe6ad97: no such file or directory"

4 修复方法:

 systemctl stop docker
 kill  $(ps -aux|grep docker |awk '{print $2}')
 kill $(ps -ef | grep docker-containerd-shim | awk '{ print $2 }')
 rm -rf /var/lib/docker/*
 docker-storage-setup --reset (可跳过)
 docker-storage-setup (可跳过)
 systemctl restart docker
 docker load -i /etc/tos/conf/tos.tar.gz

5 修复方法说明

docker创建的容器是无状态的,一些状态信息(例如数据、配置文件等)其实都已经挂载进宿主机或者持久化到其他地方;这个时候可以通过上面的修复方法,关闭docker相关容器和进程,删除/var/lib/docker/下面容器相关的无状态信息;然后重启docker和kubelet,这个时候k8s会自动将之前的容器调度起来;

这篇文章对您有帮助吗?

平均评分 0 / 5. 次数: 0

尚无评价,您可以第一个评哦!

非常抱歉,这篇文章对您没有帮助.

烦请您告诉我们您的建议与意见,以便我们改进,谢谢您。