导语:服务器断电之后。docker和containerd都无法启动,启动夯住,系统日志报错如图。
我删除了卸载containred和docker并重新安装,并没有解决问题。一直认为是系统出现了故障。
后续查看日志开头有etcd相关的报错,containerd为什么会需要etcd呢,后续发现是containerd存储数据也使用了.db文件,应该是使用了etcd存储数据那一套。看起来是containerd的数据坏掉了
率先尝试删除db文件,重启后会新生成。默认是在/var/lib/containerd/io.containerd.metadata.v1.bolt/meta.db
rm /var/lib/containerd/io.containerd.metadata.v1.bolt/meta.db
依旧不行则需要清理整个containerd文件夹,但是镜像需要重新导入。
rm -rf /var/lib/containerd
也不一定具体是哪个文件,有其他人遇到另外的db损坏的。
docker相关db
/var/lib/docker/containerd/daemon/io.containerd.metadata.v1.bolt/meta.db
/var/lib/docker/volumes/metadata.db
/var/lib/docker/network/files/local-kv.db
/var/lib/docker/builder/fscache.db
/var/lib/docker/buildkit/snapshots.db
/var/lib/docker/buildkit/metadata.db
/var/lib/docker/buildkit/cache.db
containerd相关
/var/lib/containerd/io.containerd.metadata.v1.bolt/meta.db
参考
https://github.com/containerd/containerd/issues/3347