Docker – MySQL容器不能继续运行

我需要一些在Docker容器中使用MySQL的帮助。 我认为Docker的整个目标是隔离沙盒中的进程,让它们像普通进程一样运行 – 我没有得到这个function。

每当我运行一个我自己的图像构build的MySQL容器时,它会运行2秒钟,然后停止。 尝试docker run -i -t <imageid>给我这个:

 root@CenturionX:/home/centurionx/Code/Git/gdms-rcon# docker run -i -t e2d 150221 05:25:21 mysqld_safe Logging to '/var/lib/mysql/28123b6d1dad.err'. 150221 05:25:21 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql 150221 05:25:21 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended root@CenturionX:/home/centurionx/Code/Git/gdms-rcon# 

为什么守护进程不能保持打开状态? 我有我的Dockerfile ,它看起来像:

 # This docker file constructs a MySQL database instance FROM mysql:latest ADD . /gdms-rcon/mysql WORKDIR /gdms-rcon/mysql ENTRYPOINT ["/usr/bin/mysqld_safe"] EXPOSE 3306 

和一个fig.yml文件来帮助我自动化构build过程:

 mysql: build: . volumes: - .:/gdms-rcon/mysql working_dir: /gdms-rcon/mysql ports: - "3306:3306" environment: - MYSQL_DATABASE=mydb - MYSQL_ROOT_PASSWORD=mypassword 

mysql官方映像有一个/entrypoint.sh脚本,在启动映像时需要运行,以正确configuration和运行容器。 看来,运行/usr/bin/mysqld_safe而不是正确configurationMySQL和进程mysqld_safe结束,所以容器也结束。

尝试更换您的ENTRYPOINT

 # This docker file constructs a MySQL database instance FROM mysql:latest ADD . /gdms-rcon/mysql WORKDIR /gdms-rcon/mysql ENTRYPOINT ["/entrypoint.sh"] EXPOSE 3306