最近迷恋上alpine,因为轻量,所以很适合在自己的硬件服务器上部署。剩下的事情可以全部交给docker。

这里打包一个干净的centos7+宝塔 留着自己随时使用,每次部署环境鼓捣半天实在是很烦。

如果只打包干净的宝塔,也没必要,还不如直接用centos7的镜像弄。所以还是集成上常用的软件和版本

下面操作基于 N2600小鸡,系统是 alpine3.15

前期配置和安装docker

#基于 alpine 3.15
sudo root #切换到root
#打开几个端口
iptables -I INPUT -p tcp --dport 20 -j ACCEPT
iptables -I INPUT -p tcp --dport 21 -j ACCEPT
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
iptables -I INPUT -p tcp --dport 443 -j ACCEPT
iptables -I INPUT -p tcp --dport 888 -j ACCEPT
iptables -I INPUT -p tcp --dport 8888 -j ACCEPT
iptables save
service iptables restart #重启防火墙
apk add nano #习惯用nano
nano /etc/apk/repositories  #去掉 community  这行前面的注释
apk update #更新
apk del *httpd* #删除一个httpd的东西 看起来像是apache
apk add docker #安装 需要时间耐心等待
rc-update add docker boot #启动项
service docker start #启动

配置docker里面的宝塔

开始弄宝塔,基于centos7  centos8的有点迷。。centos7能用就继续官方支持到2024年估计宝塔会更久一些,debian和Ubuntu的docker镜像装宝塔都有点小问题处理起来占用时间,所以还是7

docker pull centos:centos7  #拉取centos7
#创建容器 baota
docker run -i -t -d --name baota -p 20:20 -p 21:21 -p 80:80 -p 443:443 -p 888:888 -p 8888:8888 --privileged=true --restart=always -v /wwwroot:/www/wwwroot centos:centos7
#进入容器
docker exec -it baota /bin/bash
#安装宝塔 去掉官方centos命令里面的sudo
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

几分钟后宝塔基础功能安装完毕

修改配置宝塔

执行 bt 修改用户名 为 user 密码:123456  

浏览器打开宝塔

1、现在宝塔要绑定账号,很烦 先绑定

2、修改 面板名称 Docker宝塔,关闭在线客服按钮

3、修改安全入口名 admin

4、安装自己常用的

  • nginx1.2 (没啥说的)
  • php7.4 (thinkphp 还有 wp 都要7+了,选择对wp最低支持的7.4,以前都是用7.1 这次本来也是想7.1的,还是删掉换7.4吧)
  • php5.6 (暂时不装了,很少用了,旧版程序也主要是是部分默认参数改变导致的兼容性问题所以这个版本的php以后不装了)
  • php8.0 (新版用于尝试和调试)
  • phpmyadmin5.0 (没啥说的)
  • Redis-6.2 (没啥说的)
  • mysql5.7 (调整参数后在低性能主机上依旧可以和mysql5.5接近)
  • FTP (肯定是不需要了,大文件有ssh 小文件有宝塔到文件管理,所以ftp没需求)
  • php的扩展 fileinfo sg11 redis  memcached都是部分php开源产品需要的,另外opcache 也很也是一个比较简单方便并且提升php性能的方法
  • 安装腾讯COS 和 阿里OSS 用于备份 还是因为本身没啥太多东西,自己存还是容易搞丢所以还是弄上吧

5、安装完成后,修改一下mysql性能配置,选择宝塔默认的1-2G方案

关于mysql5.7的内存占用 如果很在意,还可以修改几个配置项

performance_schema = off
table_open_cache   = 400

这样改完重启后也就50M内存

继续修改降低到30M

key_buffer_size         = 8M
thread_stack            = 128K
tmp_table_size          = 32M
max_connections         = 20
table_open_cache_instances = 1
query_cache_limit       = 512K
query_cache_size        = 8M
sort_buffer_size        = 1M

6、在宝塔到面板菜单栏隐藏去ftp菜单,退出绑定的宝塔账号 

开始打包容器

先进入容器检查检查下有没有多余的问题,检查完成后直接打包当前容器

直接使用commit

  • -a :提交的镜像作者;
  • -c :使用Dockerfile指令来创建镜像;
  • -m :提交时的说明文字;
  • -p :在commit时,将容器暂停。
docker commit -a "joyanhui" -m "centos7Baota LNMP" baota baota:v1

查看镜像大小  3G+.....

试着用   依旧是3G

docker export baota | docker import - baota:ln12m57p78

想了一下 应该是编译的东西太多了

算了上传到阿里云的docker,因为免费而且速度很可以。

已经有人滥用做网盘用了,不知还能用多久

docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/命名空间/镜像仓库:[镜像版本号]
docker push registry.cn-beijing.aliyuncs.com/命名空间/镜像仓库:[镜像版本号]


$ docker login --username=【user****@aliyun.com】 registry.cn-hangzhou.aliyuncs.com
$ docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/joyanhui/baota:[镜像版本号]
$ docker push registry.cn-hangzhou.aliyuncs.com/joyanhui/baota:[镜像版本号]

实际
sudo docker login --username=【user****@aliyun.com】 registry.cn-hangzhou.aliyuncs.com
docker tag  19efcf236d5b registry.cn-hangzhou.aliyuncs.com/joyanhui/baota:ln12m57p78
docker push registry.cn-hangzhou.aliyuncs.com/joyanhui/baota:ln12m57p78

拉取命令

docker pull registry.cn-hangzhou.aliyuncs.com/joyanhui/baota:ln12m57p78