爆错代码

docker run -p 3307:3306 --name mysql-master \
> -v /mydata/mysql-master/log:/var/log/mysql \
> -v /mydata/mysql-master/data:/var/lib/mysql \
> -v /mydata/mysql-master/conf:/etc/mysql \
> -e MYSQL_ROOT_PASSWORD=root  \
> -d mysql:5.7

问题描述

执行代码后 再用docker ps查找不到运行的容器id,但是执行docker ps -a可以看到容器以非零方式退出了

使用docker logs 查看日志

docker logs mysql-master
2025-07-23 05:01:20+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 5.7.44-1.el7 started.
2025-07-23 05:01:20+00:00 [ERROR] [Entrypoint]: mysqld failed while attempting to check config
	command was: mysqld --verbose --help --log-bin-index=/tmp/tmp.nVAeWu6pEy
	mysqld: Can't read dir of '/etc/mysql/conf.d/' (Errcode: 2 - No such file or directory)
mysqld: [ERROR] Fatal error in defaults handling. Program aborted!

原因

我使用的是mysql 5.7,按着的是之前的学习资料,配置挂载目录时,关于配置文件是的路径描述这样的

-v /mydata/mysql-master/conf:/etc/mysql \

这个在之前是可以的,现在应该在报错的/etc/mysql/conf.d/下才对

解决方案

先删除之前的容器

docker rm -f 容器id/容器名

docker rm -f mysql-master

再重行执行

docker run -p 3307:3306 --name mysql-master \
> -v /mydata/mysql-master/log:/var/log/mysql \
> -v /mydata/mysql-master/data:/var/lib/mysql \
> -v /mydata/mysql-master/conf:/etc/mysql/conf.d \
> -e MYSQL_ROOT_PASSWORD=root  \
> -d mysql:5.7

更多推荐