其他分享
首页 > 其他分享> > 记录docker容器启动失败的一个问题

记录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