Docker中安装宝塔面板,如何让宝塔面板随容器启动而自动启动宝塔服务?

这几天装了Docker,后来想再建个站,机器本身就装有站点,这一搞就要出问题了!于是想到Docker中装宝塔!奈何是arm机器,一开始没注意,后来发现系统架构问题。docker靠前的镜像大多是arm64的,根本无法在arm里运行。又去 Docker Hub Container Image Library,找到了合适的镜像,等我搭建好后!ip:8888 无法访问,进容器终端发现 宝塔面板服务压根没有运行,玩我是吧。。。。。。。。

直接在 容器的CMD 或入口点写

bt start

不行,容器启动后又停止了!

原本在容器的CMD 或入口点写

/bin/bash

也就是说,容器启动后 容器的CMD 或入口点 的命令不能中途退出或执行结束!

这样啊!嘿嘿那就这样吧...

bt start;/bin/bash

还是运行不了!

网上的很多方法出的是莫名其妙的错误!

不过,还有一招,直接用c编译一个Linux程序后,宝塔启动的命令可交给程序!

/root/docker/bt/autostart.c

中写入

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int main(){
	printf("Welcome to Autostart!");
	system("bt start");
	system("/bin/bash");
}

注:要在运行环境的架构中编译,否则程序又出错了!

开始编译....

注:我的当前目录是在autostart.c下的

gcc autostart.c

得到一个文件

a.out

让容器绑定 宿主机的一个目录,将a.out放到目录下!

然后,容器的CMD 或入口点 指向该程序!

再次启动容器,运行成功!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值