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

宝塔面板定制docker镜像发布-集成LN/AMP支持ARM-8.0.5版本

发表在 Linux面板2021-11-13 18:14   [复制链接] 230 93761

此docker镜像由堡塔安全官方发布,镜像版本为宝塔面板8.0.5正式版,镜像会随着正式版的宝塔面板更新
目前支持x86_64和arm架构可供下载使用
旧的7.9.4已保存为7.9.4标签

维护者:堡塔安全--宝塔官方团队

M1/M2 mac镜像传送门:宝塔面板7.9.2定制docker镜像发布-集成LN/AMP支持m1/m2 mac版本

注意:部署完成后,请立即登录宝塔面板--->面板设置中修改用户名和密码并修改安全入口
注意:部署完成后,请立即登录宝塔面板--->面板设置中修改用户名和密码并修改安全入口
注意:部署完成后,请立即登录宝塔面板--->面板设置中修改用户名和密码并修改安全入口

latest 标签拉取的是lib标签,安装了面板并且安装集成依赖包,安装每个软件都会快一点
fresh 标签表示安装了面板但是没有安装集成依赖包,安装第一个软件会比较慢,因为需要装依赖包。
lib标签表示安装了面板并且安装集成依赖包,安装每个软件都会快一点。
lnmp 标签表示安装了面板、集成包并且集成LNMP【Nginx1.24+MySQL8.0+PHP8.2】
7.9.4的lnmp 标签表示安装了面板、集成包并且集成LNMP【Nginx1.22+MySQL5.7+PHP7.4】arm标签是MySQL5.6
lamp 标签表示安装了面板、集成包并且集成LAMP【Apache2.4+MySQL8.0+PHP8.2】
7.9.4的lamp 标签表示安装了面板、集成包并且集成LAMP【Apache2.4+MySQL5.7+PHP7.4】arm标签是MySQL5.6


如何拉取镜像
仅拉取镜像保存到本地,不部署容器,仅需拉取一次,永久存储到本地镜像列表
  1. docker pull btpanel/baota:lnmp
复制代码

7.9.4旧镜像拉取方式
  1. docker pull btpanel/baota:7.9.4-lnmp
复制代码
小贴士:即使不拉取镜像,在下面部署的时候如果docker本地镜像列表找不到镜像,docker会从云镜像库里面拉取,只要执行一次之后镜像就会永久存储到本地镜像列表中。
疑问?:我是arm服务器arch64架构怎么办?
答疑!:直接拉取镜像即可,docker默认会根据系统架构自动拉取匹配架构的镜像到本地。

如何部署
方法1:复制下方的命令,无需映射端口使用本地网络直接部署宝塔面板docker镜像。
  1. docker run -d --restart unless-stopped --name baota --net=host -v ~/website_data:/www/wwwroot -v ~/mysql_data:/www/server/data -v ~/vhost:/www/server/panel/vhost btpanel/baota:lnmp
复制代码
方法2:复制下方的命令,映射指定端口部署宝塔面板docker镜像。
  1. docker run -d --restart unless-stopped --name baota -p 8888:8888 -p 22:22 -p 443:443 -p 80:80 -p 888:888 -v ~/website_data:/www/wwwroot -v ~/mysql_data:/www/server/data -v ~/vhost:/www/server/panel/vhost btpanel/baota:lnmp
复制代码

两种部署方法都会把用户的目录映射到容器中,用户可自行修改映射的目录,方法1案例以如下:
  1. ~/website_data修改成/home/website_data
  2. ~/mysql_data修改成/home/mysql_data
  3. ~/vhost修改成/home/vhost
复制代码
此时我的容器启动命令就是这个
  1. docker run -d --restart unless-stopped --name baota --net=host -v /home/website_data:/www/wwwroot -v /home/mysql_data:/www/server/data -v /home/vhost:/www/server/panel/vhost btpanel/baota:lnmp
复制代码

小提示
1.如果你希望运行的docker在你设置了内容以后,再commit打包成自己的镜像留着日后使用,请不要映射目录运行容器,可以使用下面的方法运行容器,这样打包容器就能将你的网站内容、各种设置、数据库一起打包在里面
  1. docker run -d --net=host btpanel/baota:lnmp
复制代码
2.额外参数作用简要说明:
  1. #重启docker后自启容器
  2. --restart unless-stopped
  3. #命名改容器命为baota,如果已经存在一个请设置成其他
  4. --name baota
复制代码

如何访问
现在,您可以在浏览器访问默认地址 http://您的ip地址:8888/btpanel 上的宝塔面板。
默认用户:btpanel
默认密码:btpaneldocker
镜像默认SSH密码:btpaneldocker

无法访问?
请检查系统防火墙以及服务器商家安全组是否开放了8888端口,下面给出系统防火墙firewalld(必需)的开放方法
添加8888端口放行(必需):
  1. firewall-cmd --zone=public --remove-port=8888/tcp --permanent
复制代码
重载firewalld(必需):
  1. firewall-cmd --reload
复制代码
开放安全组示例(必需):
阿里云
腾讯云

端口使用分析
  1. SSH:22
  2. MySQL:3306
  3. 网站服务:80,443
  4. 宝塔面板:8888
  5. phpmyadmin:888
复制代码

目录使用分析
  1. 容器里面的网站数据目录:/www/wwwroot
  2. MySQL数据目录:/www/server/data
  3. vhost文件路径:/www/server/panel/vhost
复制代码

使用有任何问题或者建议,欢迎广大用户在此贴提交,您宝贵的建议会让我们有更大的动力
相关学*教程参考:
https://www.runoob.com/docker/docker-command-manual.html
Docker 官方文档: https://docs.docker.com/

常见问题和解决方法
1.计划任务不自动执行的解决方法
进入容器内
  1. docker exec -it ID bash
复制代码
然后执行下面的命令重启激活计划任务程序,再删掉面板添加的计划任务重新添加一遍就可以了
  1. pkill crond && /sbin/crond
复制代码

2.数据库页面提示密码错误的解决方法在数据库页面点击root密码,重置MySQL密码即可
QQ截图20220106190338.jpg

3.fresh、lib标签安装软件后无法自启动的解决方法;根目录下有个bt.sh的文件,添加下面的内容即可,php记得换成自己的版本,如果是apache将nginx换成httpd;其他软件需要自启也同样加内容到这个bt.sh脚本里面。
  1. /etc/init.d/nginx start
  2. /etc/init.d/mysqld start
  3. /etc/init.d/php-fpm-74 start
  4. /etc/init.d/pure-ftpd start
  5. /etc/init.d/bt restart
  6. pkill crond
  7. /sbin/crond
  8. tail -f /dev/null
复制代码

4.面板终端用不了?想要连接容器内部的SSH,参考这个方法:本贴129楼

5.面板里面的系统防火墙用不了?firewalld用不了?这楼有说明:本贴2楼

遇到了自己无法解决的问题?可以先翻一下评论,如果没有找到适用于自己的请帖子评论留言
问题具体描述:

什么设备:
什么系统和架构:
附件截图:

举个例子:
具体问题描述:btpanel/baota:lnmp标签无法启动
什么设备:物理服务器/云服务器/树莓派/某云arm等
什么系统:Ubuntu20.04/aarch64
截图:错误截图上传图片附件


使用道具 举报 只看该作者 回复
发表于 2022-1-11 15:56:16 | 显示全部楼层

需要启动容器内的firewalld,需要自行使用容器特权模式启动宝塔面板镜像
  1. --privileged=true
复制代码

请注意,一旦使用特权模式启动容器,容器内将更不安全,不建议使用特权模式。

容器内的宝塔面板不凸显firewalld管理的原因很简单,不想再从容器内部去管理容器的firewalld,一切的端口控制都将由用户在宿主机端口映射中控制。

容器内暴漏的3306端口也做一下说明,容器暴漏端口不映射的话,仅供容器之间以及系统本机使用,其他任何地方都无法连接它,这只是一个容器的端口声明,在运行时并不会因为这个声明应用就会开启这个端口的服务;

宿主机权限泄露另说

mac下提示无权限的也可以使用这个参数,但是不要在生产环境下使用,测试环境下可以,持久化存储的话,建议使用nfs或者其他的存储方式  发表于 2022-9-20 10:04
使用道具 举报 回复 支持 2 反对 0
发表于 2022-8-18 11:34:28 | 显示全部楼层
运维风光 发表于 2022-8-18 10:10
宿主机的防火墙也要开放8121端口。还要映射、开放39000-40000的端口
查看是否监听端口:
...

宿主机的selinux和firewalld明明禁用了,居然不行的,还得开启防火墙。
  1. systemctl start firewalld
  2. firewall-cmd --zone=public --permanent --add-port=8121/tcp
  3. firewall-cmd --zone=public --permanent --add-port=39000-40000/tcp
  4. firewall-cmd --reload
复制代码
39000-40000是被动连接端口,现在开放了端口好像还不行?再去宝塔修改pureftpd的配置文件,强制修改成服务器ip
  1. ForcePassiveIP                192.168.100.63
复制代码
重启一下pureftpd就好了
使用道具 举报 回复 支持 1 反对 0
发表于 2022-2-22 16:09:32 | 显示全部楼层
您好,我是用的omv,我运行后,有弹窗提示有新版本,我就升级了,升级后就提示安全入口校验失败
如下:
请使用正确的入口登录面板
错误原因:当前新安装的已经开启了安全入口登录,新装机器都会随机一个8位字符的安全入口名称,亦可以在面板设置处修改,如您没记录或不记得了,可以使用以下方式解决

解决方法:在SSH终端输入以下一种命令来解决

1.查看面板入口:/etc/init.d/bt default

2.关闭安全入口:rm -f /www/server/panel/data/admin_path.pl

注意:【关闭安全入口】将使您的面板登录地址被直接暴露在互联网上,非常危险,请谨慎操作

但是两种方式都提示没有那个文件或目录,求解
使用道具 举报 回复 支持 1 反对 0
发表于 2022-2-9 15:56:24 | 显示全部楼层
现在有M1的稳定镜像了吗?急等
使用道具 举报 回复 支持 1 反对 0
发表于 2021-11-27 21:40:23 | 显示全部楼层
zuihq 发表于 2021-11-27 21:24
我在MacOS M1 下安装成功了,但是MySQL启动出错,期待大佬的帮助。谢谢
启动命令如下:
docker run -d --na ...

问题已经解决,解决的办法是:
1. 通过登陆面板后删除Mysql,并重启 docker
2. 重新安装Mysql
使用道具 举报 回复 支持 1 反对 0
匿名  发表于 2021-11-14 22:18:23
最近教程高产哎
使用道具 举报 回复 支持 反对
发表于 2021-11-16 21:55:05 | 显示全部楼层
这个就是变相的离线安装方法吗?
使用道具 举报 回复 支持 反对
发表于 2021-11-18 10:12:14 | 显示全部楼层
我用macbook M1 装了一下,一直打不开面板,http://您的ip地址:8888/btpanel   部署方法1,方法2 都尝试了不行,在命令中输入 bt 都是正常的,尝试了 firewall-cmd --zone=public --remove-port=8888/tcp --permanent  也不行
使用道具 举报 回复 支持 反对
发表于 2021-11-18 11:37:24 | 显示全部楼层
eva.a 发表于 2021-11-18 10:12
我用macbook M1 装了一下,一直打不开面板,http://您的ip地址:8888/btpanel   部署方法1,方法2 都尝试了 ...

m1 cpu的支持已经做好了,但是在测试中,暂时还没有放到btpanel下正式使用,如果你想尝鲜的话,可以pull这个
  1. docker pull akaishuichi/btpanel:m1fresh
  2. docker pull akaishuichi/btpanel:m1lib
  3. docker pull akaishuichi/btpanel:m1lnmp
  4. docker pull akaishuichi/btpanel:m1lamp
复制代码


另外,mac os下默认禁用一些端口,比如8888就不行,你可以指定其他端口用8899啥的
使用道具 举报 回复 支持 反对
发表于 2021-11-18 14:36:19 | 显示全部楼层
哇哦~棒啊,这样服务器可以装个爱快路由,然后把宝塔放在爱快路由的Docker里面跑了,路由还能控制端口和安全,完美!
使用道具 举报 回复 支持 反对
发表于 2021-11-18 14:49:12 | 显示全部楼层
YD{5K@SWN0KWT$[LSEMVA.png

爱快路由可以搜到你们的库,但是点进去提示不支持,为啥丫,爱快软路由都是PC安装的,就是普通电脑的硬件,应该是支持的啊
使用道具 举报 回复 支持 反对
发表于 2021-11-19 18:29:20 | 显示全部楼层
倾心丨WHY 发表于 2021-11-18 14:49
爱快路由可以搜到你们的库,但是点进去提示不支持,为啥丫,爱快软路由都是PC安装的,就是普通 ...

我今天弄了个一个测试,回来看你的截图,我知道你为啥不支持了。。你的32位的;没问题的,我已经跑起来了
QQ截图20211119181859.jpg
使用道具 举报 回复 支持 反对
发表于 2021-11-21 14:12:07 | 显示全部楼层
堡塔安全赤井秀一 发表于 2021-11-19 18:29
我今天弄了个一个测试,回来看你的截图,我知道你为啥不支持了。。你的32位的;没问题的,我已经跑起来了 ...

额...忘了上次加了内存,我居然还在用32位的...尴尬了...我去换64的,看来等会就能用上了.....
使用道具 举报 回复 支持 反对
发表于 2021-11-23 01:23:58 | 显示全部楼层
我在宝塔面板的docker里装了一个这个 然后出现问题了 里面的apache启动不了 提示这个
D2BE9303-25A9-46F6-AC11-AF345F133839.png
使用道具 举报 回复 支持 反对
发表于 2021-11-23 15:47:01 | 显示全部楼层
没有 SSH吗?
使用道具 举报 回复
发表于 2021-11-23 17:36:56 | 显示全部楼层

建议docker作为进程隔离环境使用

容器里面已经加了openssh,但是要使用的话还需用户自行处理
使用道具 举报 回复 支持 反对
发表于 2021-11-23 17:37:33 | 显示全部楼层
宝塔用户_rxsklp 发表于 2021-11-23 01:23
我在宝塔面板的docker里装了一个这个 然后出现问题了 里面的apache启动不了 提示这个

...

端口占用了,创建时建议你指定端口使用,否则就会端口冲突
使用道具 举报 回复 支持 反对
发表于 2021-11-24 16:58:48 | 显示全部楼层
堡塔安全赤井秀一 发表于 2021-11-23 17:37
端口占用了,创建时建议你指定端口使用,否则就会端口冲突

也就是说 我本地nginx搭建网站用80端口 docker里的apache搭建网站就不能用80只能用81之类的端口访问网站了是吧
使用道具 举报 回复 支持 反对
发表于 2021-11-24 18:05:57 | 显示全部楼层
宝塔用户_rxsklp 发表于 2021-11-24 16:58
也就是说 我本地nginx搭建网站用80端口 docker里的apache搭建网站就不能用80只能用81之类的端口访问网站 ...

是的,一般情况下只建议有一个web服务使用,docker最好用在隔离环境下,母鸡不搭建任何服务,只有web;向你目前这个已经有环境的情况下只能换其他端口用了
使用道具 举报 回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

企业版年付运维跟进群

普通问题处理

论坛响应时间:72小时

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

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

紧急问题处理

论坛响应时间:10分钟

问题处理方式:1对1处理(优先)

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

工作时间:晚班:18:00 - 24:00

立即付费处理

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

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