前一段时间有人问我怎么在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 |
安装宝塔面板
下面两个命令二选一
宝塔开心版出自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 |
输入bt 11
取消入口限制
bt 11 |
输入bt 6
修改面板用户名
bt 6 |
输入bt 5
修改面板密码
bt 5 |
浏览器打开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 |
之后要用就可以从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 |