Docker - MySQL 容器不保留 运行

Docker - MySQL container does not keep running

我需要一些关于在 Docker 容器中使用 MySQL 的帮助。我认为 Docker 的全部意义在于隔离沙箱中的进程并让它们 运行 像正常进程一样 - 我没有得到这个功能。

每当我 运行 我从自己的图像构建的 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 文件来帮助我自动化构建过程:

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

mysql official image 有一个 /entrypoint.sh 脚本,当您启动映像以便正确配置和 运行 连接容器时 运行 需要该脚本。似乎 运行ning /usr/bin/mysqld_safe 没有正确配置 mysql 并且进程 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