1 官方文档

使用 Docker 部署
本篇文章教你如何快速拥有一个自己的博客

1.1 Docker简介

Docker 是一个开源的应用容器引擎,主要包括镜像、容器和仓库三个部分。它的主要目的是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使产品(可以是 web 应用或者数据库应用)及其环境能够实现“一次封装,到处运行”。

具体来说,Docker 类似于一个封闭的沙盒或者是集装箱,它可以把不同的应用全都放在它的集装箱里面,并且以后有需要的时候,可以直接把集装箱搬到其他平台或者服务器上,实现容器虚拟化技术,随用随搬。这解决了运行环境和配置问题软件容器,方便做持续集成并有助于整体发布。

Docker 特点如下:

  • 启动快,资源占用小,资源利用高,快速构建标准化运行环境。
  • 创建分布式应用程序时快速交付和部署。

1.2 Halo 简介

HALO开源CMS是一款基于Spring Boot+Vue.js框架的现代化开源CMS,代码开源且完全免费。它已经迭代了80多个版本,可以轻松接入国内的云存储服务,而且文档、社区和操作界面全部是中文的。对于有一定Java基础的用户来说,可以很轻松上手使用,同时它还有对应的微信小程序项目。主要支持Mysql或者H2数据库,默认是H2数据库,不需要单独安装。

此外,HALO还具有丰富的主题和插件,可以满足大部分人的建站需求。安装方式非常简单,只需按照网站提示进行配置即可。

1.3 快速启动

这里是快速体验,详细安装请往下看
安装完docker之后,快速启动

docker run -it -d --name halo -p 8090:8090 -v ~/.halo2:/root/.halo2 halohub/halo:2.11

2 安装并运行Halo

2.1 创建Halo主目录

Halo主目录用于存放项目生成的文件,备份迁移的主目录

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

2.2 远程下载配置文件

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

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

在这里插入图片描述

2.3 编辑配置文件

可以变为自己的数据库,也可以不变
主要是数据库的配置,这里可以选择的数据库有很多,具体可根据自身情况选择合适的数据库
可参考官方文档:配置参考

vim application.yaml
server:
  port: 8090

  # Response data gzip.
  compression:
    enabled: true
spring:
  datasource:
    # MySQL database configuration.
    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

halo:
  # Your admin client path is https://your-domain/{admin-path}
  admin-path: admin

  # memory or level or redis
  cache: memory

2.4 拉取最新镜像

docker pull halohub/halo:2.11

2.5 运行博客

docker run -it -d --name halo -p 8090:8090 -v ~/.halo2:/root/.halo2 halohub/halo:2.11
  • it: 开启输入功能并连接伪终端
  • d: 后台运行容器
  • name: 为容器指定一个名称
  • p: 端口映射,格式为 主机(宿主)端口:容器端口 ,可在 application.yaml 配置。
  • v: 工作目录映射。形式为:-v宿主机路径:/root/.halo,后者不能修改。
  • restart: 建议设置为 unless-stopped,在 Docker启动的时候自动启动 Halo 容器。

输入:localhost:8090 即可打开网址
在这里插入图片描述

3 升级halo版本

3.1 备份数据

备份数据,可以参考备份与恢复进行完整备份。
Halo如何备份:Halo备份与恢复

3.2 领取最新halo镜像

docker pull halohub/halo:2.11

3.3 停止运行中的容器

docker stop halo
docker rm halo

3.4 更新 Halo

docker run -it -d --name halo -p 8090:8090 -v ~/.halo2:/root/.halo2 halohub/halo:2.11

4 开放服务器的防火墙

#开放8090端口
firewall-cmd --zone=public --add-port=8090/tcp --permanent 

# 重启防火墙
firewall-cmd --reload

# 查看防火墙所有开放的端口
firewall-cmd --zone=public --list-ports 

# 查看防火墙端口和进程等相关情况
netstat -lnpt

在这里插入图片描述

5 halo 基本操作

5.1 docker查看容器

docker ps

在这里插入图片描述

5.2 运行项目

输入ip加上端口号进入Halo
在这里插入图片描述

5.3 停止项目

docker stop halo

在这里插入图片描述

6 常见问题

6.1 没有权限

使用root用户操作,输入下面代码,输入密码即可,第一次数据密码需要输入两次确认密码,按照指示操作即可

su root

在这里插入图片描述

6.2 ommand ‘netstart’ not found, did you mean:

这是没有安装相关指令,根据提示安装即可

apt install net-tools

其他命令没安装同样操作
在这里插入图片描述

6.3 command ‘firewall-cmd’ not found, but can be installed with:

apt install firewalld

在这里插入图片描述

恭喜你,配置完成,可以进行个人博客的搭建了
请添加图片描述

Logo

一起探索未来云端世界的核心,云原生技术专区带您领略创新、高效和可扩展的云计算解决方案,引领您在数字化时代的成功之路。

更多推荐