问题描述
docker创建mysql容器并实现本地目录挂载,虽然创建成功了,但是查看容器却不存在,删除重新创建还是同样的问题。
原因分析:
因为做本地目录挂载的时候在宿主机中创建了相关文件夹,并且还预先把数据库文件丢进去了。
在创建容器时挂载了一个非空的主机目录到 /var/lib/mysql/,而这个目录中存在一些与 MySQL 初始化不兼容的文件,如旧版本的 MySQL 数据文件、其他应用程序的文件等,导致 MySQL 无法按照预期进行初始化操作。。
MySQL 在使用 --initialize 参数(通常在首次启动容器且需要初始化数据库时使用)时,要求数据目录(这里是 /var/lib/mysql/)必须为空。
排错过程:
-
使用 docker ps -a 命令查看所有容器(包括已停止的容器),找到 MySQL 容器的 ID 或名称
-
docker logs [容器ID或名称] 命令查看容器的日志,从中查找可能的错误信息来确定容器无法正常启动的原因,并进行相应的修复。