Docker容器在启动mysql服务器后死亡

Docker容器在启动mysql服务器后死亡,mysql,docker,Mysql,Docker,我正试图从ubuntubase构建一个sqldocker容器。我构建映像并运行它。我可以确认它正在运行,但是它马上就死了。我怎样才能让它活着 Docker文件 FROM ubuntu RUN apt-get update && \ apt-get install -y mysql-server COPY run.sh /sbin/run.sh COPY createDBTable.sql / RUN chmod 755 /sbin/run.sh CMD ["./sbin

我正试图从ubuntubase构建一个sqldocker容器。我构建映像并运行它。我可以确认它正在运行,但是它马上就死了。我怎样才能让它活着

Docker文件

FROM ubuntu

RUN apt-get update && \
    apt-get install -y mysql-server
COPY run.sh /sbin/run.sh
COPY createDBTable.sql /
RUN chmod 755 /sbin/run.sh
CMD ["./sbin/run.sh"]
run.sh

#!/bin/sh
service mysql start
cat createDBTable.sql | mysql -u root
echo "show databases" | mysql -u root
docker运行的输出

 * Starting MySQL database server mysqld
   ...done.
Database
information_schema
<new table>
mysql
performance_schema
sys

我使用上面提到的dockerfile创建了一个docker容器。我没有使用-d标志在后台运行它,而是使用-it在交互模式下启动它。一段时间后,容器停止运行,出现以下错误-

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

您可以使用Google尝试各种方法来消除上述错误。

如果容器出现问题,您无法使其保持活动状态。我建议您运行以下程序:


将mssql_容器_名称替换为容器名称。如果您没有获取名称,请键入:docker ps-a并在那里获取名称。如果你愿意,你可以在这里把答案贴到docker日志上,也许我们可以帮助你。但是,这就是如何发现容器发生了什么。

为什么不使用MySQL映像呢?-此外,docker容器仅在CMD部分中的命令不返回退出代码的情况下运行。您的bash脚本需要使用apachectl-D前台之类的东西来检查类似的情况docker@docker:~/mysql$docker记录未刷新的\u goodall*启动mysql数据库服务器mysqld没有目录,使用HOME=/[OK]数据库信息登录\u schema mysql performance\u schema sysSo这可能与容器中的mysql问题有关。如果MySQL无法加载服务,或者在这种情况下,如果脚本传递任何类型的错误,那么容器将失败。我建议使用该图像。希望这对你没什么帮助。它正在运行,我的shell脚本甚至正在创建一个数据库和添加表。我还创建了数据库,并且能够创建表。但是过了一段时间,容器停止了,我可以在日志中看到提到的错误。
docker logs mssql_container_name