当前位置:   article > 正文

记一次docker的mysql容器exited(1)无法正常启动_dependency failed to start: container mysql exited

dependency failed to start: container mysql exited

起因是因为我在使用docker创建自定义的镜像时遇到了爆内存的情况,迫不得已我需要重启docker服务并且强制停止所有容器,然后重启docker服务并且需要手动重启里面的容器。

在我start mysql容器的时候遇到了bug:启动mysql容器后秒退关闭了
输入docker ps -a查看情况
alt发现异常关闭了
输入docker logs f39859b3373a查看日志
只查看后面n行输入docker logs -t --tail=n [容器id]
mysql
发现是mysqld报错了,无法识别default-character-set=utf8,突然想起是几天前改过配置文件,应该是因为这个导致无法正常启动。
但是我又没法启动mysql容器改配置并且也没有使用挂载功能连接外部Linux,这很难办,获取docker容器在外部机的存储位置不是一件简单的事。
查阅资料发现可以使用docker cp命令拷贝容器里面的数据,提前找清楚容器内部的文件路径就好了。
我之前修改的配置路径在容器的\etc\mysql\my.cnf
使用

docker inspect -f '{{.ID}}'  f39859b3373a
  • 1

查出容器的长ID:f39859b3373a7edc2b22a534caca4239b41661448799ec4bfaabe4aef21ec845
使用docker cp

docker cp f39859b3373a7edc2b22a534caca4239b41661448799ec4bfaabe4aef21ec845:/etc/mysql/my.cnf  /home/luo/
  • 1

拷贝my.cnf到外部linux的/home/luo/目录下,
在这里插入图片描述

mysqld

编辑完后重新上传到Linux上,然后重新传回mysql容器中

docker cp /home/luo/my.cnf  f39859b3373a7edc2b22a534caca4239b41661448799ec4bfaabe4aef21ec845:/etc/mysql/
  • 1

最后重新启动mysql容器,可以正常启动了。
在这里插入图片描述
在这里插入图片描述
至于表的数据,存放在docker容器里的/var/lib/mysql/下,需要的话可以拷贝出来保存到外部虚拟机。

最后还是推荐使用挂载的方式创建容器方便数据的传输存储:Docker mysql 把数据存储在本地目录

其他参考资料:
Docker 从容器中拷贝文件到宿主机中

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/511618
推荐阅读
相关标签
  

闽ICP备14008679号