阿里云服务器使用 Docker 部署 Halo 博客全流程

Administrator
Administrator
发布于 2026-02-24 / 18 阅读
0
0

阿里云服务器使用 Docker 部署 Halo 博客全流程

  • 阿里云服务器一台

  • 已备案的域名(如 ceo-tech.cn)

  • 服务器已安装宝塔面板

一、安装 Docker

检查是否已安装,没装则自动安装:


docker --version || (curl -fsSL https://get.docker.com | sh && systemctl enable docker && systemctl start docker)

二、配置 Docker 国内镜像源

国内服务器直接拉 Docker Hub 镜像会超时,需要配置镜像加速:


mkdir -p /etc/docker && cat > /etc/docker/daemon.json << 'EOF'

{

  "registry-mirrors": [

    "https://docker.1ms.run",

    "https://docker.xuanyuan.me"

  ]

}

EOF

systemctl restart docker

验证是否生效:


docker info | grep -A 5 "Registry Mirrors"

三、部署 Halo

一条命令启动:


docker run -d --name halo \

  -p 8090:8090 \

  -v ~/.halo2:/root/.halo2 \

  --restart=always \

  halohub/halo:latest

参数说明:

  • -d:后台运行

  • -p 8090:8090:映射端口

  • -v ~/.halo2:/root/.halo2:数据持久化,容器删除数据不丢

  • --restart=always:服务器重启后自动启动

检查是否启动成功:


docker ps

状态为 Up 即可。

四、放行端口

阿里云安全组

阿里云控制台 → 云服务器 ECS → 安全组 → 添加入方向规则 → 放行 8090/TCP

服务器防火墙


firewall-cmd --zone=public --add-port=8090/tcp --permanent && firewall-cmd --reload

验证:


firewall-cmd --list-ports

此时访问 http://服务器IP:8090 应该可以看到 Halo 初始化页面。

五、配置域名解析

登录阿里云控制台 → 域名解析 → 添加记录:

| 配置项 | 值 |

|--------|-----|

| 记录类型 | A |

| 主机记录 | blog |

| 记录值 | 你的服务器IP |

| TTL | 默认 |

等待 1-2 分钟后验证:


ping blog.你的域名.cn

返回正确 IP 说明解析生效。

六、宝塔配置 Nginx 反向代理

添加站点

网站 → 添加站点 → 域名填 blog.你的域名.cn → PHP 选纯静态 → 提交

配置反向代理

点击站点设置 → 反向代理 → 添加反向代理:

| 配置项 | 值 |

|--------|-----|

| 代理名称 | halo |

| 目标URL | http://127.0.0.1:8090 |

| 发送域名 | $host |

配置 SSL

站点设置 → SSL → Let's Encrypt → 勾选域名 → 申请 → 开启强制 HTTPS

七、初始化 Halo

浏览器访问 https://blog.你的域名.cn,按引导:

  1. 设置超级管理员账号密码

  2. 进入后台

  3. 安装主题(主题市场选一个喜欢的)

  4. 开始写文章

常用运维命令


# 查看日志

docker logs halo



# 重启

docker restart halo



# 更新版本

docker stop halo && docker rm halo

docker pull halohub/halo:latest

docker run -d --name halo \

  -p 8090:8090 \

  -v ~/.halo2:/root/.halo2 \

  --restart=always \

  halohub/halo:latest

数据存储在 ~/.halo2 目录,更新容器不影响数据。


评论