当前位置:首页 > 服务器类 > Linux > 正文内容

Linux宝塔怎么设置开机自启,使用docker安装宝塔,并解决宝塔服务在docker下开机自启动问题

Codefans4年前 (2021-10-25)Linux2872

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

使用docker安装宝塔主要有以下几点好处:环境隔离,一个主机可以部署多套服务。

宝塔对主机控制度较高,依赖关系复杂,而docker可以保证宝塔服务不影响到宿主机其他服务,木马等同理。

宝塔分为linux版和windows版,而windows版本并不是非常完善,我们可以使用docker在windows上构建linux版的宝塔。

一、使用docker安装宝塔

1.拉取纯净的centos7.2镜像

docker pull centos:7.2.1511

2.启动容器,并配置容器参数

注:

容器开机自启

–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 
centos

3.进入容器,并安装宝塔

01.进入容器

docker attach baota


02.安装宝塔

yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

03.配置宝塔

安装完成后会有用户登录地址和用户名密码显示在命令行界面上。

我们可以进入宝塔面板中选择需要安装的编译组件,可以自行配置。

如果打不开请检查防火墙放行端口8888

二、配置宝塔自启动

安装完后有一个问题,容器虽然自启动了,但是宝塔的服务并不会随容器的启动而启动。

我们需要在宿主机的开机脚本中配置容器开机自动执行启动宝塔的服务。

1.创建脚本

sudo nano /home/user/startBotSh.sh

粘贴以下内容

#!/bin/bash
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;
sudo docker exec f81b5e657eb6 crond;

注:

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.挂载开机自启脚本

使用命令:

sudo crontab -e

添加新的一行,将我们刚刚写的脚本挂载到计划任务中。

@reboot sudo bash /home/user/startBotSh.sh &


使用:wq保存后即配置完成,可以重启后查看是否配置成功

三、设置启动时自动备份容器(可选)

虽然宝塔本身提供了比较完善的备份功能,但是有了docker我们可以轻易地将整个运行环境包含其内容备份,即使到其他主机上可以直接使用。

1.更改启动脚本

vi /home/user/startBotSh.sh

2.在sleep 30;后面添加内容

sudo docker rmi btsitebackup && sudo docker commit f81b5e657eb6 btsitebackup &&

注:

将f81b5e657eb6改为自己的容器id

有需要的也可以使用推到docker线上仓库,在每次开机时push(需要考虑安全性)


扫描二维码推送至手机访问。

版权声明:本文由图慧网发布,如需转载请注明出处。

本文链接:http://www.tuh8.com/?id=14

分享给朋友:

“Linux宝塔怎么设置开机自启,使用docker安装宝塔,并解决宝塔服务在docker下开机自启动问题” 的相关文章

docker中安装宝塔面板

docker中安装宝塔面板

我的电脑是win10,安装的virtualbox其上装的ubutun14,ubutun也安装了docker,今天我补充一个完整的操作流程。怎么在docker中安装宝塔面板?先打个岔,这些命令总是记不住,所以记录在本文中,以便将来查询:列出所有的容器 IDdocker ps&nbs...

docker不能正常使用cron任务

基于centos7的docker不能正常使用cron任务问题修改docker centos7镜像对应的容器的/etc/pam.d/crond文件把required 修改成sufficient,如下:account    sufficient &nbs...

使用Mysqldump命令备份和恢复Mysql数据库

之前一直习惯用phpmyadmin备份恢复数据库,不过数据库文件大了用phpmyadmin就不行了。这时候我们就需要Mysqldump来备份和恢复。以下内容来自网络。1、导出命令:mysqldump -u用户名 -p数据库密码 数据库名 > 文件名如果用户名需要密码,则需要在此命令执行后输入一...

Ubuntu搜狗输入法安装指南

Ubuntu搜狗输入法安装指南

Ubuntu搜狗输入法安装指南搜狗输入法已支持Ubuntu1604、1804、1910、2004、2010各系统安装步骤可能略有不同,以Ubuntu2004为例。1、添加中文语言支持打开 系统设置——区域和语言——管理已安装的语言——在“语言”tab下——点击“添加或删除语言”弹出“已安装语言”窗口...

Linux Docker systemctl 命令无法使用的解决方案

问题介绍:在 Ubuntu 20.04 的 Docker 容器中无法使用 systemctl 命令众所周知 systemctl 可以用来启动、停止服务和查询服务状态的。例如你可以使用 systemctl start apache2 这条命令来启动 Apache 服务。使用 systemctl 命令时...

bitwarden实现及踩坑记录

bitwarden 搭建背景免费用户LastPass目前只能在一个设备上登陆,所以迁移到bitwarden。bitwarden是开源的跨平台密码管理软件。搭建后可以有全部功能具体流传步骤前置条件:安装dockerbitwarden只支持Https,所以VPS需要有域名、开放80 、443端口。由于使...