解决docker容器因报错无法启动的问题,检查、修复容器错误并重启
问题复现
使用:
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,也无法进入到容器内部,所以就有两种解决方案:
- 在不启动容器的情况下,进入到容器的目录中,然后对文件做操作
- 在启动容器且不启动应用的情况下,把容器“夯住”,进入容器内部调试
这里我们使用第一种解决方案
解决方法
首先查看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容器因报错无法启动的问题,检查、修复容器错误并重启相关推荐
- linux tomcat重启 报错,Linux启动Tomcat或停止Tomcat的错误解决方案
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 在tomcat中产生如下文件且报错: -rw-rw-r-- 1 17946 Feb 21 09:24 hs_err_pid20807.log -rw-rw ...
- docker公共仓库:创建docker hub公共仓库 / 登陆docker hub仓库报错解决/ 上传拉取镜像 / 配置阿里云镜像加速器
######1.创建docker公共仓库###### Docker仓库是用来包含镜像的位置,Docker提供一个注册服务器(Register)来保存多个仓库, 每个仓库又可以包含多个具备不同tag的镜 ...
- python pip install syntaxerror_解决pip install xxx报错SyntaxError: invalid syntax的问题
python--pip install xxx报错SyntaxError: invalid syntax 在安装好python后,进入python运行环境后,因为我要用pip安装开发Web App需要 ...
- VS调试 启动vs报错--未启动IIS
VS调试 启动程序报错--未启动IIS Express Web服务 解决办法: 1.关闭VS. 2.删出项目文件下的".vs"文件. 3.重新启动解决方案. 4.编译,运行OK. ...
- win7设置ipsec_解决win7连接IPsec报错789和809错误
解决win-7连接IPsec报错789和809错误 萌新一枚,大神请飘过~~~ 最近遇到一个很沙雕的问题,win7连接IPsec一直报错789,百度方法解决掉后又报错809,809解决掉后继续报789 ...
- 报错:启动apache服务时出现报错
报错:启动apache服务时出现报错 [root@localhost init.d]# service httpd start 显示地址被占用 解决方法: 原来是博主之前启动过httpd服务,但是在手 ...
- 已解决(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 ...
- 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 ...
- WIN10解决蓝屏SYSTEM_THREAD_EXCEPTION_NOT_HANDLED报错过程记录
WIN10解决蓝屏SYSTEM_THREAD_EXCEPTION_NOT_HANDLED报错过程记录 夜里两点多的时候,使用着飞行堡垒8的华硕笔记本,办公.右下角跳出过一个提示框,具体内容不太记得清楚 ...
最新文章
- SAP MM初阶之包含有Service item的服务采购订单
- 单纯形法(二)(线性规划的基本定理)
- 消息队列--RabbitMQ简单使用
- Log4j 1使用教程
- BZOJ.1190.[HNOI2007]梦幻岛宝珠(分层背包DP)
- 第一个脚本-HelloWorld
- csstd超出部分用...替换
- 宏定义(#ifndef+#define+#endif)的作用
- 实现一个HTTP服务器的Demo
- u盘分区变为raw,提示使用前需要将其格式化
- 自研ARM芯片,亲手拆掉Wintel联盟,微软这次是认真的吗?
- 10个比较有用的jQuery插件
- f(f(x))=-x, 纯数学理解
- 云计算是什么通俗解释_什么是云? 解释
- Tslib移植与分析
- 前端CSS核心内容定位
- Mangopi MQ-R:T113-s3编译Tina Linux系统(二)SDK目录
- 大数据对人们的好处_大数据给人们生活带来哪些好处?
- 杂谈 | 从刘慈欣科幻小说到元宇宙
- 增强现实技术(AR)在Web端的技术原理