问题复现

使用:

sudo docker ps -a

查看当前的docker容器:

我们想启动name为【docker-mongo】的这个容器,因此要执行

sudo docker start docker-mongo

但是执行后仍旧没有重启,大概率是重启的时候报错了,查看日志:

sudo docker logs -f docker-mongo

可以看到其中有这样的日志:

{"t":{"$date":"2022-12-29T00:35:32.551+00:00"},"s":"E",  "c":"NETWORK",  "id":23024,   "ctx":"initandlisten",
"msg":"Failed to unlink socket file",
"attr":{"path":"/tmp/mongodb-27017.sock","error":"Operation not permitted"}
}

查到的解决方法是删除/tmp/mongodb-27017.sock文件即可。但是问题是我们无法启动docker,也无法进入到容器内部,所以就有两种解决方案:

  1. 在不启动容器的情况下,进入到容器的目录中,然后对文件做操作
  2. 在启动容器且不启动应用的情况下,把容器“夯住”,进入容器内部调试

这里我们使用第一种解决方案

解决方法

首先查看docker的这个容器在硬盘上的目录结构

sudo docker inspect docker-mongo

可以找到一段配置项:

"MergedDir": "/var/lib/docker/overlay2/457e851851b8ef6e1b56ebd89aaefab3133e8e1013adc59a98af72e6e5b93a51/merged",
"UpperDir": "/var/lib/docker/overlay2/457e851851b8ef6e1b56ebd89aaefab3133e8e1013adc59a98af72e6e5b93a51/diff",
"WorkDir": "/var/lib/docker/overlay2/457e851851b8ef6e1b56ebd89aaefab3133e8e1013adc59a98af72e6e5b93a51/work"

这便是容器与本地的地址映射(注意这个目录大概率不会与ID类似,即不会包含“32f8a297fb99”这个字段,因此需要手动查看目录与容器ID的对应关系),所以我们进入这个目录:

cd /var/lib/docker/overlay2/457e851851b8ef6e1b56ebd89aaefab3133e8e1013adc59a98af72e6e5b93a51

然后就可以找到与容器内文件相似的目录结构了,比如我想删除碍事的/tmp/mongodb-27017.sock文件,可以使用:

su # 变为管理员权限
cd /var/lib/docker/overlay2/457e851851b8ef6e1b56ebd89aaefab3133e8e1013adc59a98af72e6e5b93a51/diff
rm mongodb-27017.sock
exit # 退出root用户

这里根据自己的情况对文件进行操作,一般是配置错误导致的docker重启失败

然后就可以重启了:

sudo docker start docker-mongo
sudo docker ps


重启成功!

解决docker容器因报错无法启动的问题,检查、修复容器错误并重启相关推荐

  1. linux tomcat重启 报错,Linux启动Tomcat或停止Tomcat的错误解决方案

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 在tomcat中产生如下文件且报错: -rw-rw-r-- 1 17946 Feb 21 09:24 hs_err_pid20807.log -rw-rw ...

  2. docker公共仓库:创建docker hub公共仓库 / 登陆docker hub仓库报错解决/ 上传拉取镜像 / 配置阿里云镜像加速器

    ######1.创建docker公共仓库###### Docker仓库是用来包含镜像的位置,Docker提供一个注册服务器(Register)来保存多个仓库, 每个仓库又可以包含多个具备不同tag的镜 ...

  3. python pip install syntaxerror_解决pip install xxx报错SyntaxError: invalid syntax的问题

    python--pip install xxx报错SyntaxError: invalid syntax 在安装好python后,进入python运行环境后,因为我要用pip安装开发Web App需要 ...

  4. VS调试 启动vs报错--未启动IIS

    VS调试 启动程序报错--未启动IIS Express Web服务 解决办法: 1.关闭VS. 2.删出项目文件下的".vs"文件. 3.重新启动解决方案. 4.编译,运行OK. ...

  5. win7设置ipsec_解决win7连接IPsec报错789和809错误

    解决win-7连接IPsec报错789和809错误 萌新一枚,大神请飘过~~~ 最近遇到一个很沙雕的问题,win7连接IPsec一直报错789,百度方法解决掉后又报错809,809解决掉后继续报789 ...

  6. 报错:启动apache服务时出现报错

    报错:启动apache服务时出现报错 [root@localhost init.d]# service httpd start 显示地址被占用 解决方法: 原来是博主之前启动过httpd服务,但是在手 ...

  7. 已解决(MongoDB安装报错)Service ‘MongoDB Server (MongoDB)’ (MongoDB) failed tostart. Verify that you have su

    成功解决(MongoDB安装报错):Service 'MongoDB Server (MongoDB)' (MongoDB) failed tostart. Verify that you have ...

  8. docker load镜像报错:open /var/lib/docker/tmp/docker-import-525555606/repositories: no such file or direc

    docker load镜像报错:open /var/lib/docker/tmp/docker-import-525555606/repositories: no such file or direc ...

  9. WIN10解决蓝屏SYSTEM_THREAD_EXCEPTION_NOT_HANDLED报错过程记录

    WIN10解决蓝屏SYSTEM_THREAD_EXCEPTION_NOT_HANDLED报错过程记录 夜里两点多的时候,使用着飞行堡垒8的华硕笔记本,办公.右下角跳出过一个提示框,具体内容不太记得清楚 ...

最新文章

  1. SAP MM初阶之包含有Service item的服务采购订单
  2. 单纯形法(二)(线性规划的基本定理)
  3. 消息队列--RabbitMQ简单使用
  4. Log4j 1使用教程
  5. BZOJ.1190.[HNOI2007]梦幻岛宝珠(分层背包DP)
  6. 第一个脚本-HelloWorld
  7. csstd超出部分用...替换
  8. 宏定义(#ifndef+#define+#endif)的作用
  9. 实现一个HTTP服务器的Demo
  10. u盘分区变为raw,提示使用前需要将其格式化
  11. 自研ARM芯片,亲手拆掉Wintel联盟,微软这次是认真的吗?
  12. 10个比较有用的jQuery插件
  13. f(f(x))=-x, 纯数学理解
  14. 云计算是什么通俗解释_什么是云? 解释
  15. Tslib移植与分析
  16. 前端CSS核心内容定位
  17. Mangopi MQ-R:T113-s3编译Tina Linux系统(二)SDK目录
  18. 大数据对人们的好处_大数据给人们生活带来哪些好处?
  19. 杂谈 | 从刘慈欣科幻小说到元宇宙
  20. 增强现实技术(AR)在Web端的技术原理

热门文章

  1. C#.Net干货分享-构建Aocr_ImageHelper读取图片文字做解析
  2. 查询平均工资最低的部门信息
  3. 基于Qt的Windows平台桌面蓝牙调试器软件
  4. EAS F7控件弹出表格隐藏某列
  5. 印度软件,告诉我们什么?(转)
  6. 2018 (天津)新能源汽车三电系统技术发展交流大会暨汽车轻量化技术开发与材料应用论坛
  7. 高德地图 判断打的点是否在圈内
  8. 基于用户兴趣偏好的画像方法_基于客户偏好和产品评论的推荐系统
  9. Handdle AI在芯片字符瑕疵识别检测中的应用
  10. word2003(2007) 文档结构图 字体大小调节