记录docker容器启动失败的一个问题
作者:互联网
报错
启动docker 容器的时候报错:
Error response from daemon: error creating overlay mount to /var/lib/docker/overlay2/19cacab1f999ae7afe212d497b722a679353e224b4799b2049511c6d09a90a1f/merged: device or resource b usy
Error: failed to start containers: mysql57
解决办法
关键词:device or resource busy
设备或资源繁忙。
1. 查找占用此目录的进程
命令:
grep id /proc/*/mounts
示例如下:
grep 19cacab1f999ae7afe212d497b722a679353e224b4799b2049511c6d09a90a1f /proc/*/mounts
执行命令后很明显看到有两个进程正在使用它:
/proc/11701/mounts:overlay /var/lib/docker/overlay2/203ccb61dfb9f0a1284def25c1be4d05ed29101c96c50bc4d2a7f43492ca8473/...
/proc/11702/mounts:overlay /var/lib/docker/overlay2/203ccb61dfb9f0a1284def25c1be4d05ed29101c96c50bc4d2a7f43492ca8473/...
/proc/11703/mounts:overlay /var/lib/docker/overlay2/203ccb61dfb9f0a1284def25c1be4d05ed29101c96c50bc4d2a7f43492ca8473/...
2. 杀死进程
命令:
kill -9 进程id
示例如下:
kill -9 11701
kill -9 11702
kill -9 11703
3、重新启动容器
docker start mysql
便恢复正常了
过程记录
1、发现docker的mysql连接超时,重启mysql容器,还是不行。
2、怀疑服务器端口问题,因为其他端口能正常访问,故非云服务器安全组设置的端口问题
3、用exec进入docker应用中,应用能正常运行
4、执行docker logs mysql
查看日志,未发现有异常报错
5、开始怀疑docker问题,后发现docker内所有的容器都不能访问
6、执行systemctl restart docker
,重启docker
7、执行docker ps
, 发现为空,已经设置自启动的容器都没跑起来
8、执行docker start mysql
, 单独启动mysql容器,出现文章的报错
9、一开始用下面的关键词搜索解决办法,以为时docker文件格式发生错误,需要改为overlay1。或者是selinux 和 docker的配置不一致产生的,需要修改selinux配置。
Error response from daemon: error creating overlay mount to /var/lib/docker/overlay2
参考链接:
https://www.cnblogs.com/shoufu/p/13395324.html
10、按上面操作依旧没解决问题,再仔细看以关键词device or resource busy
查找解决办法。找到下面这个链接:
https://blog.csdn.net/Ivy_Xinxxx/article/details/121246563
11、最后能一一重新启动docker的所有容器了。
标签:容器,overlay,记录,mysql,mounts,docker,proc 来源: https://www.cnblogs.com/sweet-sour-fish/p/16449771.html