如何将启动脚本添加到mysql泊坞窗容器?

我用mysql启动了一个docker容器。
其实我想创build一个新的用户和一个新的表 – 我必须在MySQL Workbench中完成。

这是我的docker运行命令:
docker run -p 3306:3306 --name mysql-server -v ~/Development/web/myproject/docker/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:latest

我的问题是:
我怎样才能添加一个SQL启动脚本(仅用于容器的第一次启动),它创build我的用户和我的表?
我必须做哪些步骤?

有人能帮我吗?
非常感谢!

您需要通过MYSQL_USERMYSQL_PASSWORD env vars创build用户,并使用volume /docker-entrypoint-initdb.d将目录与您的启动脚本( .sh.sql.sql.gz

 docker run -p 3306:3306 --name mysql-server \ -v ~/Development/web/myproject/docker/mysql:/var/lib/mysql \ -v ~/Development/web/myproject/docker/yourstartupscripts:/docker-entrypoint-initdb.d \ -e MYSQL_ROOT_PASSWORD=root \ -e MYSQL_USER=youruser \ -e MYSQL_PASSWORD=youruserpassword \ -d mysql:latest 

解释来自: https : //hub.docker.com/_/mysql/

MYSQL_USER,MYSQL_PASSWORD
这些variables是可选的,一起使用来创build一个新用户并设置该用户的密码。 该用户将获得MYSQL_DATABASEvariables指定的数据库的超级用户权限(见上文)。 这两个variables都是创build用户所必需的。

初始化一个新的实例
首次启动容器时,将使用提供的configurationvariables创build并初始化具有指定名称的新数据库。 此外,它将执行在/docker-entrypoint-initdb.d中find的具有扩展名.sh.sql.sql.gz /docker-entrypoint-initdb.d 。 文件将按字母顺序执行。 通过将SQL转储装载到该目录中并提供自定义图像和贡献数据,可以轻松地填充您的mysql服务。 SQL文件将被默认导入到由MYSQL_DATABASEvariables指定的数据库中。