alpine/linux 下快速搭建可以随意整体迁移的宝塔面板

alpine/linux 下快速搭建可以随意整体迁移的宝塔面板

这里以alpine为例,安装后占用50M左右硬盘的一个完整linux系统

下载iso 安装 https://dl-cdn.alpinelinux.org/alpine/v3.16/releases/x86_64/alpine-virt-3.16.2-x86_64.iso

安装过程使用国内neusoft镜像,用的虚拟机镜像联网安装,安装后就是最新版

重启后登录:vi /etc/apk/repositories 去掉稳定版的community注释

1
2
3
apk add docker #安装docker
rc-update add docker boot #开机自动启动
service docker start #启动

重启一下,启动过程中可以看到dhcp的ip,启动后 ip a 也可以看到,路由器里面dhcp绑定一下ip。

ssh登录 修改docker源 文件不存在 会自动新建

1
vi /etc/docker/daemon.json

{ “registry-mirrors”: [ “https://hub-mirror.c.163.com”, “https://ustc-edu-cn.mirror.aliyuncs.com”, “https://docker.mirrors.ustc.edu.cn” ] }

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
service docker restart
# 然后虚拟机关机,整机备份
```

**容器的选择**,

宝塔支持 是 Centos7.x > Debian10 > Ubuntu 20.04 > Centos8 stream > Ubuntu 18.04 > 其它系统

这几个系统的最后支持时间 centos7(2024-6-30)debian10 (2019年7月发布也差不多2024-7)ubuntu20.04(2025-4) Ubuntu 22.04.1 LTS 安全更新至2027年4月 debian11(2026 年 12 月)尽量选择前三个系统,1是因为在debian系下多数组件是编译安装的 2是宝塔最近小bug非常多,centos下会好一些

安装docker centos 和 宝塔

```
docker pull centos:7
docker images
# 启动容器
# 目录不映射出来,因为这里需要做一个全部都在docker的可迁移的
# 先把端口考虑好,后续修改麻烦 宝塔面板的两个 80 和 443 mysql MongoDB Redis PgSQL
# 1122:22 算是备用的,另外需要预留几个golang用的端口 数字80开头的
docker run -i -t -d   --name baota -p 8888:8888 -p 180:80 -p 1122:22 -p 1443:443 -p 13306:3306 -p 888:888 -p 16379:6379 -p 27017:27017  -p 27018:27018  -p 27019:27019 -p 28017:28017 -p 5432:5432 -p 8180-8199:8180-8199 --privileged=true --restart=always centos:7 /bin/bash
#开始安装宝塔
docker exec -it baota /bin/bash
#安装脚本
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec
```

登录宝塔面板 修改面板入口地址 安装 nginx mysql5.7 php7.4 redis7 php alioss打开常用扩展,因为版本的原因,均为编译安装,速度非常慢,耐心等待,选centos7的话就没有这个问题

配置好dnspod 的key 方便续签域名证书

宝塔 7.9.4 的alioss 有配置错误,经过测试又是一个小bug,导致它无论什么系统无法配置。

vi /www/server/panel/data/aliossAS.conf

```
{"access_key": "XXXXX", "secret_key": "XXXX", "bucket_name": "XXXX", "bucket_domain": "XXXX.oss-cn-qingdao.aliyuncs.com", "backup_path": "/bt_backup/"}
```

可以正常用了

下载我的开源项目webdavgo 把/www目录映射出来到webdav

```
#https://dev.leiyanhui.com/c/webdavgo/
cd /www
wget -c https://gitee.com/joyanhui/webdavgo/releases/download/1.1.1/webdav
chmod -x ./webdav
#wget -c https://gitee.com/joyanhui/webdavgo/releases/download/1.1/webdavgo.json
```

编辑配置文件 关闭文件服务,webdav定位到 /www  
vim webdavgo.json

```
{
    "server_port":8189,
    "webdav_user_name":"admin",
    "webdav_user_psw":"12345",
    "webdav_file_path":"/www",
    "list_server_path":"",
    "list_file_path":""
}
```

宝塔新建一个go项目 站点 端口输入上面的端口后,可执行文件 /www/webdav

剩下的不在说明

这样 /www 可以在外网通过webdav访问 测试完成后,修改server\_port端口为没有映射过的端口,nginx开启ssl

同时在自己的域名控制面板里面 添加几个指向本地的子域名,免得测试项目老修改hosts文件

1.host.leiyanhui.com 到10.0.0.1

10.host.leiyanhui.com 到10.0.0.10

\*.10.host.leiyanhui.com 到10.0.0.10

127.host.leiyanhui.com 到 127.0.0.1

\*.127.host.leiyanhui.com 到127.0.0.1

配置docker里面的宝塔自动启动

在容器内新建文件

vi /www/wwwroot/bt.sh

```
## 宝塔 在容器内自动启动

/etc/init.d/bt start
/etc/init.d/redis start 
/etc/init.d/php-fpm-74 start 
/etc/init.d/mongodb start
/etc/init.d/pgsql start
/etc/init.d/mysqld start
/etc/init.d/memcached start 
/etc/init.d/nginx start 
crond
seelp 5
/etc/init.d/mysqld stop
/etc/init.d/mysqld start
/etc/init.d/redis stop 
/etc/init.d/redis start 

crond
```

推出容器,在宿主系统中添加开机启动项,这里以apline为例子

```
cd /etc/local.d
vi bt.start
# 添加内容 
docker exec -it baota sh /www/wwwroot/bt.sh 
chmod +x bt.start
rc-update add local 
```

备份容器 到tar

```
docker export baota> baota.tar
gzip baota.tar
#简化一下 事实证明没啥用 其实还是tar宝
docker export -o baota.tar.gz  baota
```

这个压缩包迁移到其他主机上 或 阿里docker服务

```
# 导入到 镜像 baota:v1
docker import baota.tar.gz baota:v1
```

docker重启后 要执行一次
comments powered by Disqus