只有在连接卷时,Docker容器才会停止运行

我写了一个dockerfile在Ubuntu映像上运行mysql。 Dockerfile是:

FROM ubuntu RUN apt-get update RUN DEBIAN_FRONTEND=noninteractive apt-get install -y mysql-server RUN sed -i '43s/.*/bind-address = 0.0.0.0/' /etc/mysql/mysql.conf.d/mysqld.cnf EXPOSE 3306 ENTRYPOINT service mysql start && bash 

如果我运行:

 docker run -dit mysql-server 

build立容器后,一切正常,我的Apache / PHP容器可以与它沟通。 但是,如果我运行一个卷( docker run -dit -v ~/vol/:/var/lib/mysql/ mysql-server ),容器将在30秒后停止运行(我很确定它是相同的每次的时间量)。

有谁知道一种方法,我可以保持容器和挂载量? 我以前从来没有遇到这个问题,也找不到其他的东西(我已经看了一会儿了)。 谢谢。

这是因为你用~/vol的内容掩盖了/var/lib/mysql的内容,我假设它是空的。 因此,MySQL服务器无法启动,因为它缺less数据库文件。 我个人使用自定义实现的官方形象,因为它将处理你在这里find的是Dockerhub的链接 。 如果需要更改,可以select装载自定义my.cnf文件。 但是,默认情况下,图像绑定到0.0.0.0。 请参阅Dockerhub链接以获取configuration选项。

希望这可以帮助

迪伦