docker启动失败,查看日志如下:
首先得根据这个 panic 的堆栈,调用关系是 main.main -> cobra -> docker daemon -> daemon.(*Daemon).restore -> initNetworkController -> libnetwork/datastore/cache -> boltdb
docker 使用了 boltdb 存储了网络信息成 db 文件,但是这个 db 文件损坏了,导致读取字节序列化错误类型,去 docker 的目录 find 下:
[root@weizb-2 ~]# find /var/lib/docker -type f -size -5M -name '*.db' | grep -v overlay
/var/lib/docker/volumes/metadata.db
/var/lib/docker/network/files/local-kv.db
/var/lib/docker/buildkit/containerdmeta.db
/var/lib/docker/buildkit/snapshots.db
/var/lib/docker/buildkit/metadata_v2.db
/var/lib/docker/buildkit/cache.db
改名 db 文件重启 docker 解决
mv /var/lib/docker/network/files/local-kv.db{,.bak}
systemctl restart docker