场景:
使用 Docker 拉取 mysql8 镜像后,使用 docker run 运行容器后,很快就会退出结束进程,很是纳闷,之后在网上找了好久,终于得以解决
实际上这是运行之后的结果,但是正常情况来说,使用 docker ps 就可查看运行中的容器,但这个运行后需要通过 docker ps -a 才可以看见,-a 是代表查看所有包括没运行的,由此可见容器启动没有成功
解决:
1、之后发现是在 docker run 后面的运行挂载备份的参数缺失导致的,少提供了一项挂载备份目录 /devtools/mysqldata/mysql-files:/var/lib/mysql-files
完整运行包括挂载目录如下:
docker run -d -p 3306:3306 --name mysql8 -v /devtools/mysqldata/log:/var/log/mysql -v /devtools/mysqldata/data:/var/lib/mysql -v /devtools/mysqldata/conf:/etc/mysql -v /devtools/mysqldata/mysql-files:/var/lib/mysql-files -e MYSQL_ROOT_PASSWORD=root mysql:8.0.29
2、提供此 /devtools/mysqldata/mysql-files 挂载备份目录后,容器就可以正常运行了
备注:此项挂载备份目录 -v /devtools/mysqldata/mysql-files:/var/lib/mysql-files 在mysql 8.x版本之后必须提供,如果是mysql 5.x版本则不需要挂载此目录