在背景中启动/ usr / bin / mysqld_safe

我正在用docker和mysql运行一个容器。 我的图像库是Ubuntu 16,问题是当我执行/usr/bin/mysqld_safe --user=mysql --skip-grant-tables我的terminal停留在黑色,我不能打字或做里面的交谈。 有没有办法执行这个命令并将过程发送到后台? 这个容器需要执行命令,同时在后台运行mysql。

您可以在该行的末尾添加一个& ,它将转到后台。

手册

启动Docker容器守护进程
docker run -d --name mysql <image> -- /usr/bin/mysqld_safe --user=mysql --skip-grant-tables

连接到容器并运行命令:
docker exec -it mysql sh

入口点

常用的方法是使用入口点脚本。

 #!/bin/sh # entrypoint.sh /usr/bin/mysqld_safe --user=mysql --skip-grant-tables & # more commands etc. 

将脚本设置为可执行

chmod 755 entrypoint.sh

然后在你的Dockerfile中:
ADD entrypoint.sh .
ENTRYPOINT ["./entrypoint.sh"]