使用docker+halo搭建自己的博客

使用docker+halo搭建自己的博客

Scroll Down

前言

1、docker的简介

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 linux或Windows机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

2、Halo的简介

Halo 是一款现代化的个人独立博客系统,给习惯写博客的同学多一个选择。
Halo [ˈheɪloʊ],意为光环。当然,你也可以当成拼音读(哈喽)。
轻快,简洁,功能强大,使用 Java 开发的博客系统

准备

  • 服务器(CentOS 7.x ,Mysql 8.0,nginx)
  • 域名

开始

使用xshell连接上服务器

1、更新软件包

确保服务器的软件包是最新的!!

sudo yum update -y

2、配置Docker运行环境

  1. 安装必要依赖

    sudo yum install -y yum-utils device-mapper-persistent-data lvm2
    
  2. 添加软件源信息

    sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
    
  3. 更新yum缓存

    sudo yum makecache fast
    
  4. 安装Docker

    sudo yum install docker-ce docker-ce-cli containerd.io
    
  5. 启动Docker后台服务

    sudo systemctl start docker
    
  6. 允许当前用户直接运行docker命令

    sudo usermod -aG docker your_name
    

    注:your_name是你系统的登录名称(linux默认root)

3、安装Halo

  1. 自定义配置文件

    # 下载配置文件到 ~/.halo 目录
    curl -o ~/.halo/application.yaml --create-dirs https://dl.halo.run/config/application-template.yaml
    
    
  2. 修改配置文件

    # 使用 Vim 工具修改配置文件
    vim ~/.halo/application.yaml
    

    打开之后可以看到

    server:
      port: 8090
    spring:
      datasource:
        type: com.zaxxer.hikari.HikariDataSource
    
        # H2 Database 配置,如果你需要使用 MySQL,请注释掉该配置并取消注释 MySQL 的配置。
    #    driver-class-name: org.h2.Driver
     #   url: jdbc:h2:file:~/.halo/db/halo
      #  username: admin
       # password: 123456
    
        # MySQL 配置,如果你需要使用 H2Database,请注释掉该配置并取消注释上方 H2Database 的配置。
        driver-class-name: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://127.0.0.1:3306/halodb?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
        username: root
        password: 123456
    
      # H2 Database 的控制台相关配置,如果你使用的是 MySQL ,请注释掉下方内容。
     # h2:
      #  console:
       #   settings:
        #    web-allow-others: false
         # path: /h2-console
          #enabled: false
    
    

    注:根据自己的需要配置

    1. 如果需要自定义端口,修改 server 节点下的 port 即可。
    2. 默认使用的是 H2 Database 数据库,这是一种嵌入式的数据库,使用起来非常方便。需要注意的是,默认的用户名和密码为 admin123456,这个是自定义的,最好将其修改,并妥善保存。
    3. 如果需要使用 MySQL 数据库,需要将 H2 Database 的所有相关配置都注释掉,并取消 MySQL 的相关配置。另外,MySQL 的默认数据库名为 halodb,请自行配置 MySQL 并创建数据库,以及修改配置文件中的用户名和密码。
    4. h2 节点为 H2 Database 的控制台配置,默认是关闭的,如需使用请将 h2.console.settings.web-allow-othersh2.console.enabled 设置为 true。控制台地址即为 域名/h2-console。注意:非紧急情况,不建议开启该配置。
    5. server.compression.enabledGzip 功能配置,如有需要请设置为 true,需要注意的是,如果你使用 Nginx 或者 Caddy 进行反向代理的话,默认是有开启 Gzip 的,所以这里可以保持默认。
    6. halo.admin-path 为后台管理的根路径,默认为 admin,如果你害怕别人猜出来默认的 admin(就算猜出来,对方什么都做不了),请自行设置。仅支持一级,且前后不带 /
    7. halo.cache 为系统缓存形式的配置,可选 memorylevel,默认为 memory,将数据缓存到内存,使用该方式的话,重启应用会导致缓存清空。如果选择 level,则会将数据缓存到磁盘,重启不会清空缓存。如不知道如何选择,建议默认。
  3. 拉取最新Halo镜像

    sudo docker pull ruibaby/halo
    
  4. 创建容器并运行

    docker run --rm -it -d --name halo -p 8090:8090  -v ~/.halo:/root/.halo ruibaby/halo
    
  5. 使用docker ps查看容器是否正在运行

15892482391.png

  1. 如果显示一会儿就消失了说明程序报错了

    使用命令查看错误

    docker run --rm -it --name halo -p 8090:8090  -v ~/.halo:/root/.halo ruibaby/halo
    

写在后面

有问题欢迎在评论区留言!!!!!