halohub/halo-devHalo Docker镜像为下一代开源博客/CMS系统提供容器化部署方案,旨在简化Halo的安装与运维流程。Halo是一款基于Java开发的现代化内容管理系统,具备轻量、高效、可扩展等特性,适用于个人博客、企业官网、内容平台等场景的快速搭建。
bashdocker run -d \ --name halo \ -p 8090:8090 \ -v ~/.halo:/root/.halo \ halohub/halo:latest
说明:
-p 8090:8090:映射容器8090端口到主机8090端口(默认服务端口)-v ~/.halo:/root/.halo:挂载主机目录到容器,实现数据持久化(包含配置、主题、插件、数据库文件等)
bashdocker run -d \ --name halo \ -p 8090:8090 \ -v ~/.halo:/root/.halo \ -e HALO_DATABASE_DRIVER_CLASS_NAME=com.mysql.cj.jdbc.Driver \ -e HALO_DATABASE_URL=jdbc:mysql://mysql-host:3306/halo?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true \ -e HALO_DATABASE_USERNAME=halo \ -e HALO_DATABASE_PASSWORD=yourpassword \ halohub/halo:latest
创建docker-compose.yml文件:
yamlversion: "3" services: halo: image: halohub/halo:latest container_name: halo restart: unless-stopped ports: - "8090:8090" volumes: - ~/.halo:/root/.halo environment: # 可选:配置数据库连接(默认使用H2嵌入式数据库) # - HALO_DATABASE_DRIVER_CLASS_NAME=com.mysql.cj.jdbc.Driver # - HALO_DATABASE_URL=jdbc:mysql://mysql-host:3306/halo?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true # - HALO_DATABASE_USERNAME=halo # - HALO_DATABASE_PASSWORD=yourpassword # 可选:修改服务端口 # - HALO_SERVER_PORT=8090
启动服务:
bashdocker-compose up -d
| 环境变量名 | 说明 | 默认值 |
|---|---|---|
HALO_SERVER_PORT | 服务监听端口 | 8090 |
HALO_DATABASE_DRIVER_CLASS_NAME | 数据库驱动类名 | org.h2.Driver(H2数据库) |
HALO_DATABASE_URL | 数据库连接URL | jdbc:h2:file:/root/.halo/db/halo |
HALO_DATABASE_USERNAME | 数据库用户名 | sa |
HALO_DATABASE_PASSWORD | 数据库密码 | 空字符串 |
HALO_CACHE_TYPE | 缓存类型(可选:memory/redis) | memory |
HALO_REDIS_HOST | Redis主机(当缓存类型为redis时) | localhost |
HALO_REDIS_PORT | Redis端口(当缓存类型为redis时) | 6379 |
容器内Halo数据默认存储路径为/root/.halo,包含:
application.yaml)themes/)plugins/)uploads/)必须通过数据卷挂载该目录,避免容器重启后数据丢失。
服务启动后,通过 http://<主机IP>:8090 访问Halo。首次访问将进入初始化页面,需完成管理员账号创建、站点基本信息配置等步骤,配置完成后即可进入管理后台开始使用。



manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务