Docker容器仅在连接卷时停止运行

时间:2017-02-08 22:53:53

标签: mysql docker containers docker-volume

我编写了一个在ubuntu映像上运行mysql的dockerfile。 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

构建容器后,一切正常,我的Apache / PHP容器可以与之通信。但是,如果我在附加卷(docker run -dit -v ~/vol/:/var/lib/mysql/ mysql-server)的情况下运行它,容器将在30秒后停止运行(我非常确定每次都有相同的时间)。

有没有人知道我可以保持容器并安装卷的方法?我以前从来没有遇到过这个问题,也无法在网上找到其他任何东西(我已经看了一会儿)。感谢。

1 个答案:

答案 0 :(得分:0)

这是因为您正在使用/var/lib/mysql的内容屏蔽~/vol的内容,我假设该内容为空。因此,MySQL服务器无法启动,因为它缺少数据库文件。我个人会在您的自定义实现上使用官方图片,因为它会处理您所寻找的here is the link to Dockerhub。如果您需要更改,它可以选择安装自定义my.cnf文件。但是,默认情况下,图像会绑定到0.0.0.0。有关配置选项,请参阅Dockerhub链接。

希望这有帮助

迪伦