Halo1.X使用 Docker部署以及版本升级

使用 Docker 部署 Halo

创建 工作目录

mkdir ~/.halo && cd ~/.halo

下载示例配置文件到 工作目录

wget https://dl.halo.run/config/application-template.yaml -O ./application.yaml

编辑配置文件,配置数据库或者端口等

vim application.yaml

按i键进入文字的编辑模式,修改进入后台的路径(自己设置),也可以修改数据库密码等。按住esc,发现光标变化,按住shift+:,输入`wq!`,保存退出配置文件编辑

拉取最新的 Halo 镜像

docker pull halohub/halo:1.6.0

创建容器

docker run -it -d --name halo -p 8090:8090 -v ~/.halo:/root/.halo --restart=unless-stopped halohub/halo:1.6.0

Docker镜像升级

停止并删除当前运行中的容器

docker stop halo

docker rm -f halo

你的容器名称不一定为 halo,在执行前可以先执行 docker ps -a 查看一下。

备份数据(重要)

cp -r ~/.halo ~/.halo.archive

清空 leveldb 缓存(如果有使用 leveldb 作为缓存策略)

rm -rf ~/.halo/.leveldb

拉取最新的 Halo 镜像

docker pull halohub/halo:1.6.0

创建容器

docker run -it -d --name halo -p 8090:8090 -v ~/.halo:/root/.halo --restart=unless-stopped halohub/halo:1.6.0

参数说明

  • -it: 开启输入功能并连接伪终端

  • -d: 后台运行容器

  • --name: 为容器指定一个名称

  • -p: 端口映射,格式为 主机(宿主)端口:容器端口 ,可在 application.yaml 配-置。

  • -v: 工作目录映射。形式为:-v 宿主机路径:/root/.halo,后者不能修改。

  • --restart: 建议设置为 unless-stopped,在 Docker 启动的时候自动启动 Halo 容器。

Halo2使用 Docker Compose 部署以及版本升级

使用Docker Compose 部署Halo

在系统任意位置创建一个文件夹,此文档以 ~/halo 为例。

mkdir ~/halo && cd ~/halo

注意:后续操作中,Halo 产生的所有数据都会保存在这个目录,请妥善保存。

创建 docker-compose.yaml

version: "3"

services:
  halo:
    image: halohub/halo:2.14
    restart: on-failure:3
    volumes:
      - ./halo2:/root/.halo2
    ports:
      - "8090:8090"
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8090/actuator/health/readiness"]
      interval: 30s
      timeout: 5s
      retries: 5
      start_period: 30s          
    command:
      # 外部访问地址,请根据实际需要修改
      - --halo.external-url=http://localhost:8090/

启动 Halo 服务

docker-compose up -d

实时查看日志:

docker-compose logs -f

更新容器组

停止运行中的容器组

cd ~/halo && docker-compose down

备份数据(重要)

cp -r ~/halo ~/halo.archive

需要注意的是,halo.archive 文件名不一定要根据此文档命名,这里仅仅是个示例。

更新 Halo 服务

修改 docker-compose.yaml 中配置的镜像版本。

services:
  halo:
    image: halohub/halo:2.14.0
docker-compose up -d