记录一次mysql因为配置文件错误导致在docker中无法启动的解决方式

admin2年前 (2023-08-16)Docker606

背景

一个已经运行并且没有将配置文件等信息挂载到本地的mysql容器。在一次修改my.con配置文件之后,重新启动mysql容器刷新配置,但是容器一直启动失败,处于restarting的状态。

排查方式

最直接的方式是通过docker logs containerName 查看容器的日志信息,在日志中发现是因为配置文件一个参数拼错了,导致容器在重启之后一直启动失败。

解决方式

方法一(直接修改容器内文件):

使用docker inspect containerId(或者容器名称)指令,在获取到容器的元数据中找到对应数据:

这个路径就是容器对应的文件数据,在里面找到对应的配置文件,mysql对应的文件地址在:/var/lib/docker/overlay2/6242a97b8d232d98efd90e1d4981925e9f1d509a0098dd869396bcd33a67889f/diff/etc/mysql/my.cnf,修改对应的参数,然后再次重新启动。

方法二(将容器中的文件复制到本地,修改完以后再复制到容器中):

使用docker cp mysql-1 containerId(或者容器名称) :/etc/mysql/my.cnf(要复制文件在容器中的位置) /opt(本机位置) 将对应文件复制出来,修改完以后再用docker cp /opt(本机位置) containerId(或者容器名称) :/etc/mysql/my.cnf(要复制文件在容器中的位置)将文件复制回去。

总结

在修改配置文件的时候要注意仔细。当发现容器启动后无法使用时,先通过docker ps -a找到对应的容器,查看容器的状态,然后通过docker logs 命令,查看容器的运行log日志,找到对应的问题。

转载与:https://www.dandelioncloud.cn/article/details/1603025286662930434