当前位置: 首页 > news >正文

Docker启动失败 - 解决方案

Docker启动失败 - 解决方案

  • 问题
  • 原因
  • 解决方案
  • service问题

问题

重启docker失败:

toolchain@endurance:~$ sudo systemctl restart docker
Job for docker.service failed because:the control process exited with error codesee:"systemctl status docker.service"and "journalctl -xe" for details.

查看docker状态失败:

toolchaiGendurance:~$ systemctl status docker.servicedocker.service -Docker Application Container EngineLoaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)Active: activating (auto-restart)(Result: exit-code) since Fri 2024-08-23 11:35:58 CST; 16s agoTriggeredBy: docker.socketDocs: https://docs.docker.comProcess: 712310 Execstart=/usr/bin/dockerd -H fd: // --containerd=/run/containerd/containerd,sock (code=exited, status=2)Main PID: 712310(code=exited, status=2)CPU: 5.522S

开启docker守护进程失败:
提示:panic: page 3 already freed

toolchain@endurance:~$ sudo dockerd
INFO[2024-08-23T19:33:48.674258552+08:00] [core] [Channel #4] Channel switches to new LB policy "pick_first"  module=grpc
INFO[2024-08-23T19:33:48.674345379+08:00] [core] [Channel #4 SubChannel #5] Subchannel created  module=grpc
INFO[2024-08-23T19:33:48.674417172+08:00] [core] [Channel #4 SubChannel #5] Subchannel Connectivity change to CONNECTING  module=grpc
INFO[2024-08-23T19:33:48.674468422+08:00] [core] [Channel #4 SubChannel #5] Subchannel picks a new address "/run/containerd/containerd.sock" to connect  module=grpc
INFO[2024-08-23T19:33:48.674520414+08:00] [core] [Channel #4] Channel Connectivity change to CONNECTING  module=grpc
INFO[2024-08-23T19:33:48.676239438+08:00] [core] [Channel #4 SubChannel #5] Subchannel Connectivity change to READY  module=grpc
INFO[2024-08-23T19:33:48.676290632+08:00] [core] [Channel #4] Channel Connectivity change to READY  module=grpc
INFO[2024-08-23T19:33:48.793055728+08:00] [graphdriver] using prior storage driver: overlay2
INFO[2024-08-23T19:33:48.910189098+08:00] Loading containers: start.
panic: page 3 already freed

原因

根据提示:panic: page 3 already freed

local-kv.db文件损坏了,导致docker启动时要释放的资源已经被释放了,状态不一致导致报错。

db文件损坏可能是由于突然断电导致的。

解决方案

将local-kv.db文件删除或重命名即可。步骤如下:

检查deamon.json

vim /etc/docker/daemon.json
default data-root: /var/lib/docker# daemon.json example, 24 server
{"data-root": "/home/docker"
}

data-root

若没有deamon.json或其中没有data-root,则data-root为默认的 /var/lib/docker

以24服务器为例,data-root为/home/docker

进入data-root

# 普通用户没有权限进入data-root
-bash: cd: /home/docker: Permission denied
# 使用管理员权限进入
sudo -s
cd /home/docker

删除db文件

db file: [data-root]/network/files/local-kv.db
default data-root: /var/lib/docker
# delete db file
sudo -s
cd [data-root]/network/files
mv local-kv.db local-kv-backup.db
# search other db file
find [data-root] -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

重启docker服务

# new system
sudo systemctl restart docker
# old system
sudo service docker restart

service问题

若使用 service 命令时,出现如下报错:

sudo service docker restart
Failed to allocate directory watch: Too many open files

解决方案详见本人的另一篇文章:
Linux系统service命令报错 - 解决方案

http://www.lryc.cn/news/518550.html

相关文章:

  • 【Duilib】 List控件支持多选和获取选择的多条数据
  • android系统的一键编译与非一键编译 拆包 刷机方法
  • SQL语言的函数实现
  • OSPF - 2、3类LSA(Network-LSA、NetWork-Sunmmary-LSA)
  • 运动相机拍摄的视频打不开怎么办
  • SpringBoot | 使用Apache POI库读取Excel文件介绍
  • 从configure.ac到构建环境:解析Mellanox OFED内核模块构建脚本
  • c#使用SevenZipSharp实现压缩文件和目录
  • 【从0带做】基于Springboot3+Vue3的高校食堂点餐系统
  • 2025年01月09日Github流行趋势
  • PostgreSQL学习笔记(二):PostgreSQL基本操作
  • 关于内网外网,ABC类地址,子网掩码划分
  • nginx 配置 本地启动
  • UE5 打包要点
  • OneFlow的简单介绍
  • 聊一聊 C#异步 任务延续的三种底层玩法
  • (k8s)Flannel Error问题解决!
  • Delaunay三角刨分算法理解及c#过程实现
  • Backend - ADO.NET(C# 操作Oracle、PostgreSQL DB)
  • Idea-离线安装SonarLint插件地址
  • Leetcode Hot100 第三题 234. 回文链表
  • Python教程丨Python环境搭建 (含IDE安装)——保姆级教程!
  • SpringBoot项目实战(39)--Beetl网页HTML文件中静态图片及CSS、JS文件的引用和展示
  • ARIMA模型 (AutoRegressive Integrated Moving Average) 算法详解与PyTorch实现
  • 【Uniapp-Vue3】swiper滑块视图容器的用法
  • allure报告修改默认语言为中文
  • 国产3D CAD将逐步取代国外软件
  • GolangWeb开发- net/http模块
  • Vue2中使用Echarts
  • AI赋能服装零售:商品计划智能化,化危机为转机