当前位置:论坛首页 > Linux面板 > 讨论

使用docker安装宝塔,并解决宝塔服务在docker下开机自启动...

发表在 Linux面板2020-7-5 19:41 [复制链接] 0 10167

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
使用docker安装宝塔主要有以下几点好处:
  • 环境隔离,一个主机可以部署多套服务
  • 宝塔对主机控制度较高,依赖关系复杂,而docker可以保证宝塔服务不影响到宿主机其他服务,木马等同理。
  • 宝塔分为linux版和windows版,而windows版本并不是非常完善,我们可以使用docker在windows上构建linux版的宝塔。
一、使用docker安装宝塔1.拉取纯净的centos7.2镜像docker pull centos:7.2.15112.启动容器,并配置容器参数
注:
容器开机自启
–restart=always
映射宝塔主要需要的端口,也可以自己添加如3306等端口
-p 80:80 -p 443:443 -p 888:888 -p 8888:8888
映射本地的/home/www作为容器的/www目录
-v /home/www:/www
docker run -i -t -d --restart=always --name baota -p 80:80 -p 443:443 -p 888:888 -p 8888:8888 --privileged=true -v /home/www:/www centos3.进入容器,并安装宝塔
1.进入容器
docker attach baota
2.安装宝塔
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
3.配置宝塔
安装完成后会有用户登录地址和用户名密码显示在命令行界面上。
我们可以进入宝塔面板中选择需要安装的编译组件,可以自行配置。
如果打不开请检查防火墙放行端口8888
二、配置宝塔自启动
安装完后有一个问题,容器虽然自启动了,但是宝塔的服务并不会随容器的启动而启动。
我们需要在宿主机的开机脚本中配置容器开机自动执行启动宝塔的服务。
1.创建脚本vi /home/user/startBotSh.sh
粘贴以下内容
sleep 30;sudo docker exec f81b5e657eb6 /etc/init.d/bt start && sudo docker exec f81b5e657eb6 /etc/init.d/nginx start && sudo docker exec f81b5e657eb6 /etc/init.d/php-fpm-56 start && sudo docker exec f81b5e657eb6 /etc/init.d/mysqld start
注:
sleep 30; 等待docker启动后再执行
sudo docker exec f81b5e657eb6 /etc/init.d/bt start 启动宝塔服务
sudo docker exec f81b5e657eb6 /etc/init.d/nginx start 启动nginx服务
sudo docker exec f81b5e657eb6 /etc/init.d/php-fpm-56 start 启动php服务
sudo docker exec f81b5e657eb6 /etc/init.d/mysqld start 启动php服务
其中 f81b5e657eb6 需要换成自己的容器id
启动php服务需要查看自己使用的php版本
更多命令可以使用 ls /etc/init.d/ 查看
使用:wq保存
2.挂载开机自启脚本
使用命令:
crontab -e
添加新的一行
@reboot sudo bash /home/user/startBotSh.sh
使用:wq保存后即配置完成,可以重启后查看是否配置成功
三、设置启动时自动备份容器
虽然宝塔本身提供了比较完善的备份功能,但是有了docker我们可以轻易地将整个运行环境包含其内容备份,即使到其他主机上可以直接使用。
1.更改启动脚本vi /home/user/startBotSh.sh2.在sleep 30;后面添加内容sudo docker rmi btsitebackup && sudo docker commit f81b5e657eb6 btsitebackup &&
注:
将f81b5e657eb6改为自己的容器id
有需要的也可以使用推到docker线上仓库,在每次开机时push(需要考虑安全性)
使用道具 举报 只看该作者 回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

普通问题处理

论坛响应时间:72小时

问题处理方式:排队(仅解答)

工作时间:白班:9:00 - 18:00

紧急运维服务

响应时间:3分钟

问题处理方式:宝塔专家1对1服务

工作时间:工作日:9:00 - 18:30

宝塔专业团队为您解决服务器疑难问题

点击免费分析

工作时间:09:00至24:00

快速回复 返回顶部 返回列表