【发布时间】:2017-06-26 18:47:36
【问题描述】:
我写了一个在 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 秒后停止运行(我很确定每次运行的时间都相同)。
有谁知道我可以保持容器启动并安装卷的方法吗?我以前从未遇到过这个问题,并且在网上找不到其他任何东西(我一直在寻找一段时间)。谢谢。
【问题讨论】:
-
来自
docker logs的任何东西? -
~/vol 与该位置图像中存在的内容有何不同?不要忘记检查文件权限和文件的 uid/gid 所有权。
-
你能尝试用
&& sleep infinity替换ENTRYPOINT&& bash吗? -
从 docker 日志中获取的信息不多,只是:* 启动 MySQL 数据库服务器 mysqld 没有目录,使用 HOME=/ [失败] 登录(如果不存在卷,则失败变为 OK)。这也是我在 /var/lib/mysql 时得到的结果:
drwxrwxr-x 4 1002 1003 4096 Feb 8 02:25 mysql. -
用 && sleep infinity 替换 && bash 没有区别,容器在 30 秒后崩溃。 ~/vol 文件夹也有 775 个权限。
标签: mysql docker containers docker-volume