嗨,您好, 我正在尝试创建一个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
感谢你的帮助!
答案 0 :(得分:0)
由于选项&#34; -d&#34;您获得0b2503b42482a4fa840351925845392e1abdf6022b23447187ff49ed4f0fa05b
在docker run -d -p 3306:3306 database
中,表示容器将在后台运行。如果你不想要它,你可以删除它。
有关此问题的详细信息,请查看以下链接:Docker run command
容器应该运行。
检查命令Docker ps
,它将显示有关运行容器的信息
希望这有帮助!
答案 1 :(得分:0)
不用担心,这是来自容器的0b2503b42482a4fa840351925845392e1abdf6022b23447187ff49ed4f0fa05b
ID。
您可以使用id来停止或检查状态或收集容器的信息。如果要检查命令是否有效,可以使用此命令运行docker run -it database bash
或docker run -it database sh
希望这有帮助。
最好的问候
答案 2 :(得分:0)
当您在Docker文件中覆盖CMD输入命令时,您需要显式启动mysqld服务
CMD [mysqld, mysql -u "root" -proot < "schema.sql"]