我将服务脚本传递给 ENTRYPOINT。服务已启动但已退出。我必须使用 ENTRYPOINT 或 CMD 中的服务脚本为每个容器启动一个进程。这样,我可以使用服务脚本重新加载容器内的配置。我也尝试使用 CMD 语句,但它启动了服务,但容器立即存在。
ENTRYPOINT ["/etc/init.d/elasticsearch", "start"]
/etc/init.d/elasticsearch 脚本具有以下代码以将服务作为守护程序启动。
cd $ES_HOME
echo -n $"Starting $prog: "
daemon --user elasticsearch --pidfile $pidfile $exec -p $pidfile -d
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
return $retval
是否无法使用启动脚本启动服务并保持容器运行?
用于创建和运行容器的命令。
docker build -f Dockerfile -t="elk/elasticsearch" .
docker run -d elk/elasticsearch
docker run -it elk/elasticsearch bash