type
status
date
slug
summary
tags
category
icon
password
菜单级别
Place
Verification
Owner
本教程将指导您使用 Docker Compose 部署 Halo 博客系统和 MariaDB 数据库。通过创建独立的外部网络,实现 MariaDB 容器的复用,让多个 Docker 应用可以共享同一个数据库实例。
前置准备
- 已安装 Docker 和 Docker Compose
- 基本的 Linux 命令行操作知识
- 服务器或本地环境的 root 权限
第一步:创建外部网络
首先创建一个独立的 Docker 网络,这样 MariaDB 可以被多个容器共享使用:
第二步:部署 MariaDB 数据库
创建 MariaDB 的
docker-compose.yml 配置文件:配置说明:
external: true表示使用已存在的外部网络
MYSQL_ROOT_PASSWORD设置 root 用户密码(请替换为强密码)
MYSQL_INITDB_SKIP_TZINFO跳过时区信息初始化,加快启动速度
- 数据持久化到
./mariadb/data目录
启动 MariaDB:
第三步:配置 Halo 专用数据库
进入 MariaDB 容器执行数据库初始化:
输入 root 密码后,执行以下 SQL 命令:
安全提示:请将
halo数据库密码 替换为强密码,并妥善保管。第四步:部署 Halo 博客
创建 Halo 的
docker-compose.yml 配置文件:配置说明:
SPRING_R2DBC_URL中的mariadb是容器名称,Docker 会自动解析
- 确保密码与第三步中设置的一致
- Halo 数据存储在
./data目录
- 默认访问端口为 8090
启动 Halo:
第五步:访问 Halo 博客
启动完成后,通过浏览器访问:
首次访问会进入初始化向导,按照提示完成博客的基础配置即可。
优势总结
使用外部网络的好处:
- 容器复用:多个应用可以共享同一个 MariaDB 实例
- 资源节省:无需为每个应用部署独立数据库
- 统一管理:集中管理数据库备份和维护
- 网络隔离:通过独立网络提高安全性
常见问题
Q: Halo 无法连接数据库?
A: 检查以下几点:
- 确认 MariaDB 容器正在运行:
docker ps
- 验证两个容器都在
mariadb-network网络中
- 确认数据库用户名和密码配置正确
Q: 如何备份数据?
A: 定期备份
./mariadb/data 和 ./data 目录即可。Q: 如何更新 Halo 版本?
A: 修改
docker-compose.yml 中的镜像版本,然后执行:结语
通过这种部署方式,您可以轻松搭建一个高性能的 Halo 博客系统,并且可以方便地为其他应用复用 MariaDB 数据库,实现资源的最优配置。
- 作者:Orz
- 链接:https://blog.1567890.xyz/technology/docker-halo-mariadb-deployment
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。

