使用 Docker 容器部署 Halo2 个人博客/企业官网/导航网站 + 网站备份教程 [ 超详细保姆级指南 ]

图片[1]-使用 Docker 容器部署 Halo2 个人博客/企业官网/导航网站|网站 + 网站备份教程 [ 超详细保姆级指南 ]

在当今数字时代,个人博客已经成为许多开发者、写作爱好者和自由职业者展示作品、记录生活、分享经验的重要渠道。相比 WordPress,Halo2 更加轻量化,采用 Java 技术栈,支持 Markdown 编辑器,性能稳定且扩展性强。如果你想快速搭建一个属于自己的个人独立博客网站,使用 Docker 部署 Halo2 是一种高效且优雅的方式。

本文将带你从零开始,学习如何使用 Docker 容器部署 Halo2,并详细讲解如何进行网站数据备份和恢复,确保博客内容的安全与长期运行。

Halo2 是国内开源团队开发的一款现代化博客系统。与传统的 WordPress 相比,它具备以下优势:

  • 轻量快速:基于 Java + Spring Boot 架构,运行稳定且资源占用低。
  • Markdown 支持:原生支持 Markdown 语法,适合开发者与写作爱好者。
  • 插件与主题生态:社区活跃,支持多样化的主题与插件,个性化程度高。
  • Docker 部署方便:官方提供 Docker 镜像,安装简单快捷,适合新手。
  • 高性能与安全性:适合个人、小团队长期使用。

项目示例

1、Handsome [心若有所向往,何惧道阻且长]

图片[2]-使用 Docker 容器部署 Halo2 个人博客/企业官网/导航网站|网站 + 网站备份教程 [ 超详细保姆级指南 ]

2、登逆 [ 知识分享,记录成长 ]

图片[3]-使用 Docker 容器部署 Halo2 个人博客/企业官网/导航网站|网站 + 网站备份教程 [ 超详细保姆级指南 ]

3、AirboZH的个人博客[🛠全栈开发|保持一种主动和快乐的心情 ]

图片[4]-使用 Docker 容器部署 Halo2 个人博客/企业官网/导航网站|网站 + 网站备份教程 [ 超详细保姆级指南 ]

4、Jiewen’blog [ 个人博客站点,杂七杂八,什么都有。 ]

图片[5]-使用 Docker 容器部署 Halo2 个人博客/企业官网/导航网站|网站 + 网站备份教程 [ 超详细保姆级指南 ]

环境准备

在部署之前,请确保你的服务器或本地环境满足以下条件:

  • 操作系统:Linux(推荐 Ubuntu 20.04+)、MacOS 或 Windows Server。
  • 安装 Docker 与 Docker Compose
sudo apt update
sudo apt install docker.io docker-compose -y
sudo systemctl enable docker --now
  • 域名解析(推荐):提前准备一个域名并解析到服务器 IP,用于 HTTPS 访问。
  • 服务器配置建议:最低 1 核 CPU + 2G 内存,推荐 2 核 + 4G 内存。

使用 Docker 部署 Halo2

Halo 官方提供了 Docker 镜像,可以通过 Docker Compose 快速部署。以下是完整的配置步骤。

1. 创建项目目录

mkdir -p /data/halo2
cd /data/halo2

2. 新建 docker-compose.yml

version: '3'
services:
  halo:
    image: halohub/halo:2.11.0
    container_name: halo2
    restart: always
    ports:
      - "8090:8090"
    volumes:
      - ./halo2-data:/root/.halo2
    environment:
      - SPRING_PROFILES_ACTIVE=prod

3.启动 Halo2

docker-compose up -d

此时,你可以通过 http://服务器IP:8090访问 Halo2 安装引导界面,按照提示配置管理员账号,即可完成初始安装。

Halo2 数据持久化与数据库配置

默认情况下,Halo2 会将数据存放在 Docker 容器内,如果容器被删除,数据也会丢失。因此我们需要进行数据持久化。

在上面的 docker-compose.yml 中,我们已经通过:

volumes:
  - ./halo2-data:/root/.halo2

实现了持久化,将数据保存到宿主机的 halo2-data 文件夹中。

如果你希望使用独立的 MySQL 数据库,可以在 docker-compose.yml 中增加数据库服务:

  db:
    image: mysql:8.0
    container_name: halo2-mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: halo123
      MYSQL_DATABASE: halo
      MYSQL_USER: halo
      MYSQL_PASSWORD: halo123
    volumes:
      - ./mysql-data:/var/lib/mysql
    ports:
      - "3306:3306"

然后在 Halo2 配置中修改为数据库模式即可。

配置 Nginx + HTTPS 反向代理(可选)

如果你有域名,可以使用 Nginx 配合 Let’s Encrypt 免费 SSL 证书,实现 HTTPS 安全访问。

Nginx 配置示例:

server {
    listen 80;
    server_name blog.example.com;

    location / {
        proxy_pass http://127.0.0.1:8090;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

使用 certbot 获取 SSL 证书后,即可实现 HTTPS。

Halo2 网站备份教程

个人博客最重要的就是数据安全。我们需要定期备份数据库与上传的文件。

1. 备份 Halo2 数据文件

tar -czvf halo2-data-$(date +%F).tar.gz /data/halo2/halo2-data

2.备份 MySQL 数据库(如使用独立数据库)

docker exec halo2-mysql mysqldump -u root -phalo123 halo > halo2-db-$(date +%F).sql

3、自动化备份脚本(cron 定时任务)

#!/bin/bash
BACKUP_DIR=/data/halo2/backup
mkdir -p $BACKUP_DIR
tar -czvf $BACKUP_DIR/halo2-data-$(date +%F).tar.gz /data/halo2/halo2-data
docker exec halo2-mysql mysqldump -u root -phalo123 halo > $BACKUP_DIR/halo2-db-$(date +%F).sql

编辑定时任务:

crontab -e

添加每天凌晨 2 点自动备份:

0 2 * * * /bin/bash /data/halo2/backup.sh

数据恢复方法

1. 恢复 Halo2 数据文件

tar -xzvf halo2-data-2025-01-01.tar.gz -C /data/halo2/halo2-data

2、恢复 MySQL 数据库

docker exec -i halo2-mysql mysql -u root -phalo123 halo < halo2-db-2025-01-01.sql
使用 Docker 容器部署 Halo2 个人博客/企业官网/导航网站|网站 + 网站备份教程 [ 超详细保姆级指南 ]
此内容为付费资源,请付费后查看
28积分
付费资源
已售 2
© 版权声明
THE END
喜欢就支持一下吧
点赞2 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容