你的容器里面应该对目录是否存在以及权限是否正确要有所判断
例:
```sh
if [ ! -d "/var/lib/mysql/$DB_NAME" ]; then
mysqld --initialize-insecure --user=mysql --datadir=/var/lib/mysql
mysqld --daemonize --user=mysql
sleep 5s
mysql -uroot -e "create database $DB_NAME default charset 'utf8' collate 'utf8_bin';grant all on $DB_NAME.* to '$DB_USER'@'%' identified by '$DB_PASSWORD';flush privileges;";
tail -f /var/log/mysqld.log
else
mysqld --daemonize --user=mysql
tail -f /var/log/mysqld.log
fi
```
你也可以参考 MySQL 官方的启动脚本 [
docker-entrypoint.sh](
https://github.com/mysql/mysql-docker/blob/mysql-server/5.7/docker-entrypoint.sh)