前一段时间有人问我怎么在Docker的Debian镜像上部署宝塔面板,Docker Hub上目前大部分是基于CentOS系统的宝塔面板,而且RedHat和Ubuntu/Debian本身也有一定的命令差异,于是我就顺手写了这个教程,这样也方便了我自己。
先放出我做好的Docker镜像:https://hub.docker.com/r/xiwangly/baota
先拉取Debian镜像
docker pull debian
运行
docker run -itd --privileged=true --shm-size=1g --name=baota --net=host --restart=always -v /www/wwwroot:/www/wwwroot debian
进入容器内部
docker exec -it baota /bin/bash
替换镜像源(有良好的国际互联网连接则可以不用)&更新源
sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list && apt-get update
设置临时环境变量,用于静态交互
export DEBIAN_FRONTEND=noninteractive
安装软件包,如果不使用curl安装宝塔面板则可以不安装curl,wget同理,其它的软件包真的用不到也可以不安装
apt-get install -y init procps wget iproute2
//apt-get install -y curl
安装宝塔面板
下面两个命令二选一
宝塔开心版出自https://bt.sy/
(总感觉这样发出来不太好)
试验性Centos/Ubuntu/Debian安装命令 独立运行环境(py3.7)可能存在少量兼容性问题
curl -sSO http://io.bt.sy/install/install_panel.sh && bash install_panel.sh
Debian安装命令:
wget -O install.sh http://io.bt.sy/install/install-ubuntu_6.0.sh && bash install.sh
询问是否安装,回复y
继续
中途可能会遇到报错,自行解决
安装完成后,输入bt
可查看命令,如果输入了这个就直接交互数字就行了
bt
===============宝塔面板命令行==================
(1) 重启面板服务 (8) 改面板端口
(2) 停止面板服务 (9) 清除面板缓存
(3) 启动面板服务 (10) 清除登录限制
(4) 重载面板服务 (11) 取消入口限制
(5) 修改面板密码 (12) 取消域名绑定限制
(6) 修改面板用户名 (13) 取消IP访问限制
(7) 强制修改MySQL密码 (14) 查看面板默认信息
(22) 显示面板错误日志 (15) 清理系统垃圾
(23) 关闭BasicAuth认证 (16) 修复面板(检查错误并更新面板文件到最新版)
(24) 关闭动态口令认证 (17) 设置日志切割是否压缩
(25) 设置是否保存文件历史副本 (18) 设置是否自动备份面板
(0) 取消 (29) 取消访问设置验证
===============================================
请输入命令编号:
===============================================
已取消!
输入bt 11
取消入口限制
bt 11
===============================================
正在执行(11)...
===============================================
Reload Bt-Panel.. done
|-已取消入口限制,请在URL地址中增加/login访问面板
输入bt 6
修改面板用户名
bt 6
===============================================
正在执行(6)...
===============================================
请输入新的面板用户名(>3位):test
|-新用户名: test
输入bt 5
修改面板密码
bt 5
===============================================
正在执行(5)...
===============================================
请输入新的面板密码:123456
|-用户名: test
|-新密码: 123456
浏览器打开http://Docker宿主机的IP地址/login
输入前面设置的账号密码登录(如果没有重设账号密码就按照安装后提示的账号密码登录)
阅读《用户协议》并确认,进入面板(可以先不用安装推荐的选项)
按照自己的需要自定义设置
本地测试可以把面板设置
里的IP地址改成0.0.0.0
如果需要IPV6则可以在面板设置
里打开监听IPv6
开关
退出容器内部
exit
然后提交成本地镜像
docker commit baota xiwangly/baota:latest
导出镜像到文件(可选)
docker save -o xiwangly-baota.tar xiwangly/baota:latest
登录Docker Hub
docker login
//输入账号密码登录
推送到Docker Hub
docker push xiwangly/baota:latest
以上操作可以整合修改为Dockerfile
一键构建镜像,使用下面的Dockerfile自动化构建(安装用的URL自己找):
FROM debian
RUN /bin/bash -c '\
sed -i "s/deb.debian.org/mirrors.ustc.edu.cn/g" /etc/apt/sources.list;\
apt-get update;\
export DEBIAN_FRONTEND=noninteractive;\
apt-get install -y init procps wget iproute2;\
export go=y;\
wget -O install.sh http://xxx.com/install/install-ubuntu_6.0.sh && bash install.sh -y;\
export go=;\
export DEBIAN_FRONTEND=;\
bt 11;\
echo 123456 | bt 5 123456;'
之后要用就可以从Docker Hub拉取镜像
docker pull xiwangly/baota:latest
或者从导出的镜像文件导入(可选)
docker load -i xiwangly-baota.tar
之后就可以删除这个容器
docker rm -f baota
再run,使用init进行初始化(也就是让服务开机自启)
Linux系统用这个命令运行
docker run -itd --privileged=true --shm-size=1g --name=baota --net=host --restart=always -v /www/wwwroot:/www/wwwroot xiwangly/baota /sbin/init
Windows系统用这个命令运行,存在一些兼容性问题,建议使用Linux系统运行容器
docker run -itd --name=baota -p 80:80 -p 443:443 -p 8888:8888 -p 888:888 -p 3306:3306 -p 21:21 -p 22:22 --privileged=true --shm-size=1g --restart=always -v /www/wwwroot:/www/wwwroot xiwangly/baota /sbin/init
根据实际需要更改这个docker run命令的参数
进入容器,之后怎么用就看自己了
docker exec -it baota /bin/bash
退出容器
exit
删除容器
docker rm -f baota
删除镜像
docker rmi xiwangly/baota:latest

Comments NOTHING