huaji
发布于 2026-07-24 / 12 阅读
0

docker重新安装halo教程

Docker重装Halo通用教程(自定义数据目录/data/halo,适配低内存服务器,解决分块加载报错)

1 清理旧Halo容器

docker stop halo
docker rm halo

可选清理旧镜像释放磁盘:

docker images | grep halo
docker rmi 镜像ID

2 宿主机创建数据目录

mkdir -p /data/halo
# 开放读写权限,防止容器权限不足报错
chmod 777 /data/halo

3 拉取官方最新Halo镜像

docker pull halo:latest

4 创建容器,挂载自定义目录并限制内存

限制内存避免服务内存溢出导致网页流式资源加载中断,规避Docker swap参数冲突报错。

docker run -d \
  --name halo \
  --memory 768m \
  --memory-swap 2g \
  -p 8090:8090 \
  -v /data/halo:/root/.halo \
  -e TZ=Asia/Shanghai \
  --restart always \
  halo:latest

参数说明:

  1. -v /data/halo:/root/.halo:宿主机/data/halo挂载容器配置目录,站点数据库、图片附件、配置文件全部持久化存放宿主机,重装不会丢失数据;
  2. 内存管控:物理内存上限768M,物理内存+交换内存总上限2G,适配1.5G~2G低配云服务器;
  3. TZ设置时区为东八区,保证日志、文章时间正常;
  4. --restart always实现开机、宕机自动重启容器。

5 查看启动日志校验运行状态

docker logs halo -f

日志输出Started HaloApplication代表启动完成,按Ctrl+C退出日志监听。

6 清理程序缓存(解决网页Chunk加载报错关键)

缓存文件异常极易造成静态资源传输截断,必须清理:

docker exec halo rm -rf /root/.halo/work
docker restart halo

7 访问地址测试

无痕浏览器打开站点前台:
http://服务器IP:8090
后台管理地址:
http://服务器IP:8090/console

8 Nginx反向代理适配说明

Nginx配置无需改动,依旧反向代理本机127.0.0.1:8090。修改Nginx配置后执行校验重载:

nginx -t
nginx -s reload

运维维护指南

  1. 数据备份:仅需要打包宿主机路径 /data/halo/db,包含全部文章、账号、站点配置;
  2. 日常缓存清理(页面异常、样式错乱时执行):
docker exec halo rm -rf /root/.halo/work /root/.halo/cache
docker restart halo
  1. 内存优化:如果服务器内存更低,重建容器将--memory 768m改为--memory 640m进一步降低占用。