服务器运行mysql的时候出现:Error response from daemon: Container xxx is not running
我是安装完mysql以后,通过这条命令进入mysql容器的时候出现报错:
docker exec -it mysql /bin/bash
然后我是去网上看处理过程,很多博客说只要restart docker就可以,但是我的一直都是在报错。
我的建议是:
第一步去查看报错的日志:
docker logs+容器id
通过这个即可发现出错问题的地方,很多相同报错的地方,处理方法是不同的。
我的日志显示问题是:
mysqld failed while attempting to check config
command was: mysqld --verbose --help --log-bin-index=/tmp/tmp.XeHsvFblmW
mysqld: Can’t read dir of ‘/etc/mysql/conf.d/’ (Errcode: 2 - No such file or directory)
通过查阅博客,可以确定问题是:
通过查看该容器的日志,可以看到主要是因为读取不到/etc/mysql/conf.d/目录。
原本的启动方式为:
docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7
可以修改为:
docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7
注意:修改部分里面,第三个 -v 加入了conf.d
至此成功:

步骤为:
- 查看容器状态 docker ps -a
- 先停掉容器运行,docker sotp 容器ID
- 重新使用修改后的方法启动docker
文章讲述了在运行MySQL容器时遇到Errorresponsefromdaemon:Containerisnotrunning的问题。作者建议查看容器日志,发现因无法读取/etc/mysql/conf.d/目录导致的错误。解决方案是修改dockerrun命令,将/mydata/mysql/conf挂载到/etc/mysql/conf.d/,停止并重启容器后问题得到解决。





