制作基于Debian的宝塔Docker镜像
容器基础环境搭建:
XML/HTML代码
- #拉取Debian镜像
- docker pull debian
- #运行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/ 宝塔官网:https://www.bt.cn/
XML/HTML代码
- #试验性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
XML/HTML代码
- wget -O install.sh https://download.bt.cn/install/install-ubuntu_6.0.sh && bash install.sh
询问是否安装,回复y继续,中途可能会遇到报错,自行解决。
安装完成后,输入bt可查看命令,如果输入了这个就直接交互数字就行了。
XML/HTML代码
- ===============宝塔面板命令行==================
- (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) 取消访问设置验证
- ===============================================
- 请输入命令编号:
- ===============================================
高级设置:
输入前面设置的账号密码登录(如果没有重设账号密码就按照安装后提示的账号密码登录)
阅读《用户协议》并确认,进入面板(可以先不用安装推荐的选项)
按照自己的需要自定义设置
本地测试可以把面板设置里的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自己找):
XML/HTML代码
- 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系统用这个命令运行
XML/HTML代码
- docker run -itd --privileged=true --shm-size=1g --name=baota --net=host --restart=always -v /www/wwwroot:/www/wwwroot xiwangly/baota /sbin/init
XML/HTML代码
- 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