Docker配置Halo搭建个人博客-快速入门

Docker配置Halo搭建个人博客-快速入门

  • [1 官方文档](#1 官方文档)
  • [2 安装Halo](#2 安装Halo)
    • [2.1 创建Halo主目录](#2.1 创建Halo主目录)
    • [2.2 远程下载配置文件](#2.2 远程下载配置文件)
    • [2.3 编辑配置文件](#2.3 编辑配置文件)
    • [2.4 拉取最新镜像](#2.4 拉取最新镜像)
    • [2.6 查看容器](#2.6 查看容器)
    • [2.7 开放服务器的防火墙](#2.7 开放服务器的防火墙)
  • [3 运行](#3 运行)
    • [3.1 运行项目](#3.1 运行项目)
    • [3.2 停止项目](#3.2 停止项目)
  • [4 常见问题](#4 常见问题)
    • [4.1 没有权限](#4.1 没有权限)
    • [4.2 ommand 'netstart' not found, did you mean:](#4.2 ommand 'netstart' not found, did you mean:)
    • [4.3 command 'firewall-cmd' not found, but can be installed with:](#4.3 command 'firewall-cmd' not found, but can be installed with:)

1 官方文档

使用 Docker 部署

2 安装Halo

2.1 创建Halo主目录

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

shell 复制代码
cd /usr/local/src
mkdir halo && cd halo

2.2 远程下载配置文件

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

shell 复制代码
wget https://dl.halo.run/config/application-template.yaml -O ./application.yaml

2.3 编辑配置文件

主要是数据库的配置,这里可以选择的数据库有很多,具体可根据自身情况选择合适的数据库

可参考官方文档:配置参考

shell 复制代码
vim application.yaml
shell 复制代码
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 拉取最新镜像

shell 复制代码
docker pull halohub/halo:2.10

在Docker中运行

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

2.6 查看容器

shell 复制代码
docker ps

2.7 开放服务器的防火墙

shell 复制代码
#开放8090端口
firewall-cmd --zone=public --add-port=8090/tcp --permanent 

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

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

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

3 运行

3.1 运行项目

输入ip加上端口号进入Halo

3.2 停止项目

shell 复制代码
docker stop halo

4 常见问题

4.1 没有权限

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

shell 复制代码
su root

4.2 ommand 'netstart' not found, did you mean:

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

shell 复制代码
apt install net-tools

其他命令没安装同样操作

4.3 command 'firewall-cmd' not found, but can be installed with:

shell 复制代码
apt install firewalld

恭喜你,配置完成,可以进行个人博客的搭建了

相关推荐
正点原子2 小时前
【正点原子Linux连载】 第五章 字符设备驱动开发 摘自【正点原子】ATK-DLRK3568嵌入式Linux驱动开发指南
linux·运维·驱动开发
路由侠内网穿透2 小时前
本地部署开源 HTTP 服务器 OpenLiteSpeed 并实现外部访问
运维·服务器·网络·网络协议·http·开源
源远流长jerry2 小时前
Linux内核之一条tcp到底占用多少内存
linux·运维·服务器·网络·网络协议·tcp/ip
肖坤超2 小时前
Ubuntu 26.04 完美安装和设置
linux·运维·ubuntu
Agent手记3 小时前
成品发货全流程自动化,落地实操与错发漏发规避方案 | 2026企业级Agent端到端落地指南
运维·人工智能·ai·自动化
杂家3 小时前
Docker 容器端口无法从外部访问
运维·服务器·docker·容器
红茶要加冰3 小时前
二、shell中的变量
linux·运维·shell
杨云龙UP3 小时前
ODA/Oracle 19c CDB/PDB 环境下报错ORA-65162:common user密码过期问题排查与处理_2026-05-15
linux·运维·数据库·oracle·dba·db
其实防守也摸鱼3 小时前
[特殊字符] Docker + LMArena2API 部署全流程:从环境准备到接口调用,一步到位
运维·网络·安全·web安全·docker·容器·大模型
志栋智能3 小时前
超自动化巡检:如何应对海量增长的基础设施?
运维·自动化