前言

最近在折腾openwrt,想着在openwrt上安装一个宝塔面板,但是由于固件的问题,一直无法安装成功,但是我用的固件又带有网卡驱动支持无线,也不能换了这个固件所以想着在docker中安装宝塔面板,因为docker是基于操作系统层级的虚拟化技术,所以理论上应该是可以安装的。既然理论存在,那么实践开始。

我在docker仓库中找到了宝塔面板的一个docker镜像:https://hub.docker.com/r/pch18/baota

准备工作

首先使用ssh链接linux后台,可以直接在cmd或者vscode的命令框中输入以下代码进行连接

ssh -p 22 root@192.168.1.2

参数说明:

-p 22          ssh的端口号,默认是22
root           用户名
192.168.1.2    远程IP

安装教程

1、pull自己要使用的镜像

我这里就用刚刚找到的那个宝塔的docker镜像,你也可以使用其他镜像。

docker pull pch18/baota:clear

其他镜像
docker pull pch18/baota:lnmp
docker pull pch18/baota:lnp
docker pull pch18/baota:lamp
docker pull pch18/baota:lap
docker pull pch18/baota:clear

输入完命令,按下回车,然后等待镜像拉取完成,看到以下提示说明宝塔的docker镜像已经拉取完成了

Status: Downloaded newer image for pch18/baota:clear

并且在openwrt后台的docker中也可以看到这个镜像

2、创建Docker容器

使用镜像运行容器镜像拉取完成之后,使用以下命令来创建docker容器来运行镜像

docker run -tid --name baota -p 81:81 -p 8888:8888 -p 888:888 --privileged=true --shm-size=1g --restart always -v /wwwroot:/www/wwwroot pch18/baota:clear
docker run -tid --name baota --net=host --privileged=true --shm-size=1g --restart always -v ~/wwwroot:/www/wwwroot pch18/baota:clear

参数说明

-p 是把相应的端口暴露出来,可以根据自己需求来修改
-v 是把宝塔的网站目录映射到本地目录

做完这一步就可以使用 192.168.1.2:8888 来打开宝塔的后台了,这里要注意,192.168.1.2 是我openwrt软路由的ip地址,你需要修改成你的linux终端的ip地址

3、修改宝塔登录密码

由于这个docker镜像的问题,在用它提供的账号密码登录时会出现密码错误的情况,所以需要进行密码修改的一个步骤。

官方教程链接:https://www.bt.cn/bbs/thread-1172-1-1.html

在ssh终端中依次使用以下命令来重置宝塔密码

docker exec -it baota /bin/bash
cd /www/server/panel && python tools.py panel password

password 为新密码

执行命令后会返回username,这个就是用户名

这时候我们就可以到宝塔后台,用username password这个账号密码来登录了

4、宝塔升级

镜像里的宝塔版本是6.4,修改宝塔的升级文件,可以把宝塔升级到7.6

升级文件可以到宝塔网站上下载 http://download.bt.cn/install/update6.sh

找到这个文件

wget -T 5 -O /tmp/panel.zip{version}.zip

把它改成

wget -T 5 -O /tmp/panel.zip $download_Url/install/update/LinuxPanel-7.6.0.zip

把升级文件拷贝到容器里执行

docker cp update6.sh baota:/www
docker exec -it baota /bin/bash
cd /www
sh update6.sh

最后就安装完成了