迁移/升级
备份数据(非常重要)
注意
支持 v2.6,v1.2.5及以上版本
备份数据库
提示
升级不需要备份数据库
mkdir -p /opt/sslvpn-backup
# 社区版v2.4之前是/opt/docker/openvpn/,注意区分!
cd /opt/docker/sslvpn/
# 打包数据库文件
tar zcf data.tgz mysql/
# 移动到sslvpn-backup目录中
mv data.tgz /opt/sslvpn-backup/
# 切换到备份文件夹
cd /opt/sslvpn-backup/
# 备份 baseurl.js 配置文件
cp -a /opt/docker/sslvpn/api/baseurl.js .
# 备份 openvpn 文件夹
docker cp sslvpn-web:/etc/openvpn .
# 备份接口配置文件
docker cp sslvpn-web:/etc/nginx/www/openvpn_api/config/linuxcc.php .
ls -la
备份完成,结果应该是
-rw-r--r-- 1 root root 619 12 月 25 19:39 api
-rw-r--r-- 1 root root 855375 12 月 25 20:41 data.tgz
drwxr-xr-x 11 root root 204 12 月 15 22:45 openvpn
-rwxrwxrwx 1 root root 1665 4月 2 13:14 linuxcc.php
注意
请注意区分容器名称和路径,本教程适用于专业版 v1.2 版本,之前的容器名称为 openvpn-server,路径是 openvpn!
备份旧容器
# 执行备份命令
docker commit -m="sslvpn-web-bak" -a="linuxcc" sslvpn-web sslvpn-web:bak
# 备份成功的结果
sha256:92e11258b9324c5e836e1c8eaacbce32025b8246073c85251c66ebd368c7f1a3
# 备份好的容器
[root@OPS sslvpn-backup]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
sslvpn-web bak 92e11258b932 40 seconds ago 324MB
linuxcc/sslvpn-web v1.2 ac975ef841b3 5 days ago 324MB
提示
我这里的 IMAGE ID [92e11258b932] 是备份的容器 ID,到这里就完成了所有备份操作,若是迁移直接在新服务器重新安装,若是升级你需要删除旧容器[sslvpn-web],然后执行下面脚本来创建新容器[sslvpn-web]即可。
创建新容器
注意
请根据实际情况修改版本号,迁移请直接重新安装,下面是升级的操作,升级只需要创建web容器即可
docker run -d \
--name=sslvpn-web \
--network=host \
--restart=always \
--privileged=true \
-v /etc/localtime:/etc/localtime \
-v /opt/docker/sslvpn/baseurl.js:/etc/nginx/www/dist/baseurl.js \
-v /opt/docker/sslvpn/mysql:/var/lib/mysql \
linuxcc/sslvpn-web:v`版本号`
恢复操作
提示
恢复操作适用于升级和迁移,如果只是升级,那么你不需要执行数据库的操作
cd /opt/sslvpn-backup/
# 覆盖baseurl.js配置文件
cat baseurl.js > /opt/docker/sslvpn/api/baseurl.js
# 停止数据库容器
docker stop sslvpn-mysql
# 进入备份文件夹,导入数据库文件
cd /opt/sslvpn-backup/
tar xf data.tgz -C /opt/docker/sslvpn/
# 启动数据库容器
docker start sslvpn-mysql
# 导入 openvpn 目录
docker cp openvpn/ sslvpn-web:/etc/
# 导入 配置文件
docker cp linuxcc.php /etc/nginx/www/openvpn_api/config/
# 修改权限
docker exec -it sslvpn-web chown -R nginx:nginx /etc/openvpn
docker exec -it sslvpn-web chown -R nginx:nginx /etc/nginx/www/
提示
友情提醒:不要照抄,请区分容器名称和目录结构哦,迁移和升级步骤一样,只不过是一个是升级,一个是重新安装!