如何将启动脚本添加到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_USER
, MYSQL_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_DATABASE
variables指定的数据库的超级用户权限(见上文)。 这两个variables都是创build用户所必需的。
初始化一个新的实例
首次启动容器时,将使用提供的configurationvariables创build并初始化具有指定名称的新数据库。 此外,它将执行在/docker-entrypoint-initdb.d
中find的具有扩展名.sh
, .sql
和.sql.gz
/docker-entrypoint-initdb.d
。 文件将按字母顺序执行。 通过将SQL转储装载到该目录中并提供自定义图像和贡献数据,可以轻松地填充您的mysql服务。 SQL文件将被默认导入到由MYSQL_DATABASE
variables指定的数据库中。