docker停止从退出火花容器
我知道docker只听pid 1,如果pid退出(或变成守护进程),它认为程序退出,容器closures。
当apache-spark启动时,./ ./start-master.sh
脚本如何保持容器运行?
我不认为: while true; do sleep 1000;
while true; do sleep 1000;
做是一个适当的解决scheme。
例如,我用command: sbin/start-master.sh
启动主。 但是它一直在closures。
如何使用docker-compose启动时保持运行?
如“ 在 phusion/baseimage-docker
使用Supervisor ”所述,您可以使用phusion/baseimage-docker
作为基础映像,在其中可以将脚本注册为“services”。
包含在该图像中的my_init
脚本将负责退出信号pipe理。
start-master.sh
启动的进程仍然在运行。
同样,假设您正在构build从phusion/baseimage-docker
开始的apache-spark
映像。
正如thaJeztah评论的那样 ,使用现有的图像也是如此: gettyimages/spark/~/dockerfile/
。 它的默认CMD将保持容器运行。
这两个选项比依靠tail -f
技巧更清洁,不会处理杀/退信号。
tail -f -n 50 /path/to/spark/logfile
这将保持容器活着,并且如果运行-it
交互模式也提供有用的信息。 你可以运行-d
分离,它会保持活着。