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
参数说明:
-v /data/halo:/root/.halo:宿主机/data/halo挂载容器配置目录,站点数据库、图片附件、配置文件全部持久化存放宿主机,重装不会丢失数据;- 内存管控:物理内存上限768M,物理内存+交换内存总上限2G,适配1.5G~2G低配云服务器;
- TZ设置时区为东八区,保证日志、文章时间正常;
--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
运维维护指南
- 数据备份:仅需要打包宿主机路径
/data/halo/db,包含全部文章、账号、站点配置; - 日常缓存清理(页面异常、样式错乱时执行):
docker exec halo rm -rf /root/.halo/work /root/.halo/cache
docker restart halo
- 内存优化:如果服务器内存更低,重建容器将
--memory 768m改为--memory 640m进一步降低占用。