核心逻辑只有三步:打包带走(备份) -> 重装环境(换面板) -> 原样放下(恢复)。

⚠️ 重要预警:操作前必读

从宝塔面板(Baota)切换到 1Panel 面板,强烈建议重装服务器系统(例如重置为纯净的 Debian 或 Ubuntu 系统)。

  • 原因: 宝塔和 1Panel 都会深度修改系统环境(Nginx、防火墙等),直接卸载宝塔再装 1Panel 极大概率会报错、冲突,导致你网站打不开。
  • 后果: 如果不重装系统,你可能要花几天时间修 Bug。

第一阶段:在宝塔面板进行备份 (最关键)

既然是 Docker 部署,你的博客通常由两部分组成:

  1. 配置文件(docker-compose.yml,决定了博客怎么运行)。
  2. 数据文件(博客的文章、图片、主题文件等)。

操作步骤:

  1. 找到你的博客目录:
  • 在宝塔面板左侧点击 [文件]。
  • 找到你存放博客的文件夹(通常在 /www/wwwroot/ 下,或者是 /root/ 下,取决于你当初怎么装的)。
  • 确认方法: 点进去看,应该能看到 docker-compose.yml 文件和一个包含你博客数据的文件夹(比如 source、themes 或 public)。
  1. 打包下载:
  • 在宝塔文件管理中,勾选这个博客的整个文件夹。
  • 点击 [压缩]。
  • 缩完成后,右键点击压缩包 -> 下载 到你的本地电脑上。
  • 双重保险: 解压一下你刚下载的包,检查里面是不是有文件,确保没有下载失败。
  1. 记录端口号:
    查看你的 docker-compose.yml 文件,记下 ports 部分的内容(比如 4000:4000 或 8080:80)。你需要知道容器暴露出来的端口是多少。

第二阶段:重置系统 & 安装 1Panel

  1. 重装系统:
  • 去你的服务器提供商后台(阿里云、腾讯云等),找到“重装系统”或“更换操作系统”。
  • 选择 Debian 11/12 或 Ubuntu 22.04(推荐 Debian,资源占用更少)。
  • 等待重装完成。

2.安装 1Panel:

  • 使用 SSH 工具(如果你之前问过 SSH 工具,现在正好用上)连接到你的新系统。
  • 输入 1Panel 的官方安装命令(根据官网):
1
curl -sSL https://resource.1panel.cn/quick_start.sh -o quick_start.sh && bash quick_start.sh
  • 安装完成后,记录下控制台弹出的 面板地址、用户名、密码。

第三阶段:在 1Panel 中恢复博客

登录你的 1Panel 面板,开始恢复。

1.上传备份文件

  1. 点击左侧菜单 [主机] -> [文件]。
  2. 进入 /opt/1panel/apps 目录(或者任何你喜欢的目录,推荐这里方便管理)。
  3. 点击 [上传],把你第一阶段下载的压缩包传上去。
  4. 点击压缩包后面的 [解压],进入解压后的文件夹。

2.创建 Docker 容器(编排)

  1. 点击左侧菜单 [容器] -> [编排]。
  2. 点击 [创建编排]。
  3. 路径选择: 选择你刚才解压出来的那个文件夹(包含 docker-compose.yml 的那个)
  4. 内容编辑器: 正常情况下,面板会自动读取你文件夹里的 docker-compose.yml 内容并显示在编辑器里。
    小白注意: 如果编辑器是空的,你需要手动把文件里的内容复制粘贴进去。
  5. 点击 [确认] 或 [创建]。
  6. 等待系统拉取镜像并启动。看状态变成“已启动”即成功。

3.建立反向代理(让外网能访问)

Docker 启动后,通常只能通过 IP:端口 访问。为了用域名(比如 www.yourblog.com)访问并加上 HTTPS,需要设置反向代理。

  1. 点击左侧菜单 [网站] -> [网站]。
  2. 点击 [创建网站]。
  3. 运行环境: 选择 “反向代理”。
  4. 主域名: 填你的博客域名。
  5. 代理地址: 127.0.0.1:4000
  6. 注意: 这里的 4000 必须换成你第一阶段记录的端口号。
  7. 点击 [确认]。

4.开启 HTTPS (SSL)

  1. 在刚才创建的网站列表中,点击你的域名。
  2. 找到 [HTTPS] 选项卡。
  3. 勾选 [启用 HTTPS]。
  4. 如果你没有证书,1Panel 可以直接申请 Let’s Encrypt 证书(选择“ACME 账户” -> “创建账户” -> 申请证书)。

常见问题排查(小白锦囊)

Q: 启动编排时报错?

A: 检查 docker-compose.yml 里的路径映射(volumes)。如果你在宝塔里的路径是绝对路径(比如 /www/wwwroot/blog/data),迁移到 1Panel 后,如果在这个路径下没有对应的文件,就会报错。

解决方法: 建议将 docker-compose.yml 里的绝对路径改为相对路径(比如 ./data),或者确保你解压的路径和配置文件里写的路径完全一致。

###Q: 网站显示 502 Bad Gateway?

A: 说明“反向代理”没配对。检查你在创建网站时填写的“代理地址”端口,是否真的对应 Docker 容器暴露出的端口。

按照这个流程走,你的博客就能平滑地从宝塔“搬家”到 1Panel 了。