云服务器免费试用

docker容器中运行的宝塔面板不自启动如何解决

技术文档 0 532

宝塔面板是一款非常好用的服务器管理面板,我们有些项目中为了方便客户操作管理服务器,会给服务器装这个面板,常规情况下宝塔面板安装在服务器中会自动启动,但在docker容器中会因为挂载本地目录的原因有时候无法自启成功。

docker容器中运行的宝塔面板不自启动如何解决

启动容器后通过docer exec 命令进入宝塔所在容器后,手动重启宝塔的服务后可以运行,但是web服务器又无法运行,需要登录宝塔面板后再次点击启动才可以,这样如果服务器断电或非计划关机后,web和对应的服务器就没法自动重启,安装宝塔面板就没有实际性意义了。

我们可以创建一个脚本文件,在docer的容器在启动的时候,执行一次宝塔重启、web服务器重启、mysql重启、如果还有其他的需要可以一并添加,我这里使用通的web服务器是nginx、mysql、php,所以我在系统根目录创建了stat.sh的文件,里面的内容如下:

/usr/bin/bt restart;

/etc/init.d/nginx restart;

/etc/init.d/php-fpm-73 restart;

/etc/init.d/mysqld restart;

但是另一个问题出现了,docker容器的启动很快,在启动的时候挂载的文件还没准备完成,导致命令启动失败,所以在启动后执行这个脚本的时候需要加一条延迟的命令,

sleep 5;

意思是在启动后5秒在往下执行命令。

这样容器在启动后,docker就回自动对脚本中涉及到的服务进行重启了。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942@qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: docker容器中运行的宝塔面板不自启动如何解决
本文地址: https://solustack.com/65572.html

相关推荐:

网友留言:

我要评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。