通过docker运行mysql脚本?

时间:2017-12-03 20:12:26

标签: mysql docker dockerfile

嗨,您好, 我正在尝试创建一个docker容器,它将运行一个生成数据库然后是表的mysql脚本。我的Dockerfile如下所示:

FROM mysql:latest


WORKDIR /


ADD . /


EXPOSE 3306

CMD mysql -u "root" -proot < "schema.sql"

我通过以下方式创建图像:

docker build -t database .

然后我通过这个来运行它:

docker run -d -p 3306:3306 database

此时应该运行脚本 - 但是我只是在终端中获得这个随机行:

 0b2503b42482a4fa840351925845392e1abdf6022b23447187ff49ed4f0fa05b

感谢你的帮助!

3 个答案:

答案 0 :(得分:0)

由于选项&#34; -d&#34;您获得0b2503b42482a4fa840351925845392e1abdf6022b23447187ff49ed4f0fa05bdocker run -d -p 3306:3306 database中,表示容器将在后台运行。如果你不想要它,你可以删除它。 有关此问题的详细信息,请查看以下链接:Docker run command
容器应该运行。
检查命令Docker ps,它将显示有关运行容器的信息 希望这有帮助!

答案 1 :(得分:0)

不用担心,这是来自容器的0b2503b42482a4fa840351925845392e1abdf6022b23447187ff49ed4f0fa05b ID。

您可以使用id来停止或检查状态或收集容器的信息。如果要检查命令是否有效,可以使用此命令运行docker run -it database bashdocker run -it database sh

希望这有帮助。

最好的问候

答案 2 :(得分:0)

当您在Docker文件中覆盖CMD输入命令时,您需要显式启动mysqld服务

CMD [mysqld, mysql -u "root" -proot < "schema.sql"]

相关问题