Docker部署Halo容器并结合内网穿透实现公网访问本地个人博客

news2024/11/17 8:57:04

文章目录

    • 1. Docker部署Halo
      • 1.1 检查Docker版本
      • 如果未安装Docker可参考
      • 已安装Docker步骤:
      • 1.2 在Docker中部署Halo
    • 2. Linux安装Cpolar
      • 2.1 打开服务器防火墙
      • 2.2 安装cpolar内网穿透
    • 3. 配置Halo个人博客公网地址
    • 4. 固定Halo公网地址

本文主要介绍如何在CentOS 7系统使用Docker部署Halo个人博客,并结合cpolar内网穿透工具实现公网远程访问本地搭建的网站。

Halo是一款基于Java的开源建站工具,具有简单易用、灵活性高、插件丰富等优点。可以做博客的软件平台有很多,像大家熟知的 WordPress 、Hexo、Typecho,对于计算机专业的人来说,他们会根据自己的需求选择适合的平台,但对于小白来说Halo虽然没有功能没有老牌的博客平台那么全面,但是操作简单,博客界面也很简洁美观。

真人女up分享如何快速本地部署一个简洁美观的个人Halo博客网站

0b78a413f513086c5dd5095f540f9fd

1. Docker部署Halo

1.1 检查Docker版本

  • **本地环境操作系统:**CentOS 7 安装Docker

    如果未安装Docker可参考

    安装软件包(提供实用程序)并设置存储库

    $ sudo yum install -y yum-utils
    $ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    

    安装Docker引擎

    sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    

    启动Docker

    sudo systemctl start docker
    

    通过运行映像来验证 Docker 引擎安装是否成功

    sudo docker run hello-world
    

    已安装Docker步骤:

  • 启动Docker:

 systemctl status docker
  • 检查docker版本
docker -v
  • **检查docker compose版本:**确保2.0以上版本
docker compose version
  • **下载Halo镜像:**在docker hub下载Halo-V2.10版本镜像
docker pull halohub/halo:2.10

1.2 在Docker中部署Halo

  • 创建挂载目录
mkdir -p /data/halo && cd /data/halo

07a005be5cd19fdf5a377210cf5cc4c

  • 创建Halo容器:

Halo 2与1.x 版本不兼容;

此命令默认使用自带的 H2 Database 数据库,另外可以额外单独使用Mysql数据库进行连接。

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

dd6d2a9d946f02352574cd914fe3413

  • 查看halo容器状态:检查halo容器状态,确保halo容器正常启动
docker ps

0e79a5a0e6b242e6a6e73543831ccd7

  • 检查halo容器日志: 检查halo容器运行日志,确保halo服务正常启动。
docker logs halo

d2379dad6f69ba006bea146afc6b874

  • 查看本地IP地址
ifconfig
  • 进入Halo初始化页面

访问地址:http://192.168.149.142:8090/console/setup,将IP替换为自己服务器IP地址。

**站点名称:**myweb
**邮箱:**admin@qq.com
**用户名:**admin
**密码:**自定义
点击初始化即可

a0f433681aae3d111b7523508784e38

  • **登录Halo:**输入账号和密码,登录halo,进入到仪表盘界面

e05facc1f24d0ea066d9a9757fd4fe8

4e37c2c4e250ebfa4bc69eb97dc3b6b

接下来举个例子我们创作一篇文章,在Halo后台管理页面,文章模块,点击“新建”

05f5f06359138c94a5dd5e9e743b14b

编辑完文章后,点击发布,将文章进行发布,在文章列表中即可看到发布过的文章

c5d2a7df807cf778f743226dc7f93a3

接下来本地浏览器访问http://192.168.149.142:8090/,本地服务器IP:8089,看到halo前台首页已经成功显示发布文章

e7b8f9a91bbcd888d9c8c36f331f587

我们成功在本地部署了Halo,通过访问挂载的8089端口即可看到Halo首页界面,并创作了第一篇文章,如果我们想把创作好的个人博客发布至公网分享给身边人点击查看,那么就需要借助cpolar内网穿透工具了,接下来我们安装cpolar内网穿透工具,实现无公网环境远程访问!

2. Linux安装Cpolar

2.1 打开服务器防火墙

启动防火墙

systemctl start firewalld

查看防火墙状态

systemctl status firewalld

centos7 防火墙添加端口:【单个】

firewall-cmd --zone=public --add-port=9200/tcp --permanent

重新载入

firewall-cmd --reload

查看

firewall-cmd --zone=public --list-ports

2.2 安装cpolar内网穿透

上面在本地Docker中成功部署了Halo,并局域网访问成功,下面我们在Linux安装Cpolar内网穿透工具,通过Cpolar 转发本地端口映射的http公网地址,我们可以很容易实现远程访问,而无需自己注册域名购买云服务器.下面是安装cpolar步骤

cpolar官网地址: https://www.cpolar.com

  • 使用一键脚本安装命令
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
  • 向系统添加服务
sudo systemctl enable cpolar
  • 启动cpolar服务
sudo systemctl start cpolar

cpolar安装成功后,在外部浏览器上访问Linux 的9200端口 即:【http://局域网ip:9200】,使用cpolar账号登录(如没有账号,可以点击下面免费注册),登录后即可看到cpolar web 配置界面,结下来在web 管理界面配置即可

3. 配置Halo个人博客公网地址

点击左侧仪表盘的隧道管理——创建隧道,创建一个Halo的公网http地址隧道!

  • 隧道名称:可自定义命名,注意不要与已有的隧道名称重复
  • 协议:选择http
  • 本地地址:8090 (本地访问的地址)
  • 域名类型:免费选择随机域名
  • 地区:选择China

点击创建

51428fa8d798a6f09244ff9567aa312

隧道创建成功后,点击左侧的状态——在线隧道列表,查看所生成的公网访问地址,有两种访问方式,一种是http 和https

d8fb5e5727a167bc7a527fbebfbd944

使用上面的Cpolar https公网地址,在任意设备的浏览器进行访问,即可成功看到Halo首页界面,这样一个公网地址且可以远程访问就创建好了,使用了cpolar的公网域名,无需自己购买云服务器,即可发布到公网进行远程访问!

image-20240109105141668

小结

如果我们需要把自己的个人博客长期发布至公网,分享给别人查看,由于刚才创建的是随机的地址,24小时会发生变化。另外它的网址是由随机字符生成,不容易记忆。如果想把域名变成固定的二级子域名,并且不想每次都重新创建隧道,可以选择创建一个固定的http地址来解决这个问题。

4. 固定Halo公网地址

我们接下来为其配置固定的HTTP端口地址,该地址不会变化,方便分享给别人长期查看你的博客,而无需每天重复修改服务器地址。

配置固定http端口地址需要将cpolar升级到专业版套餐或以上。

登录cpolar官网,点击左侧的预留,选择保留二级子域名,设置一个二级子域名名称,点击保留,保留成功后复制保留的二级子域名名称

bf1dd6a42148579307e2dae72055abc

保留成功后复制保留成功的二级子域名的名称

edd09daaed4aa7183b057b271331157

返回登录Cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道,点击右侧的编辑

98b73f50633de7c58fe3484439751ed

修改隧道信息,将保留成功的二级子域名配置到隧道中

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名

点击更新(注意,点击一次更新即可,不需要重复提交)

d2eeffd306da1d18e1c98884a2e45fa

更新完成后,打开在线隧道列表,此时可以看到公网地址已经发生变化,地址名称也变成了固定的二级子域名名称的域名

d68fa5856079ee39d18b5e909fb6697

最后,我们使用固定的公网https地址访问,可以看到访问成功,这样一个固定且永久不变的公网地址就设置好了,随时随地都可以把个人博客分享给其他人了!

ade1b323d51ab81f7458d0fa22cf9ee

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1462727.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

迷你世界制作甜甜圈

local R,r20,5--中心半径(内径与外径和的1/4)、扩充半径(高的一半) local x0,y0,z00,20,0--起点坐标 local d10000--单次遍历方块数 local id600--方块id local s,all,t-1,0,0--步骤、总方块数、循环 local demath.random(2,18)/2 local x,y,z0,0,0--当前坐标 local func…

毕业神刊!1区、CCF推荐SCI,最新26天录用!6天见刊

一手刊源 • 毕业快刊 春节一过,距离2024年上半年毕业的日子近在眼前,你的毕业论文已安排投稿了吗?时间着急的作者,不妨重点关注本期小编推荐的毕业快刊:无中科院预警记录,非三大出版社,指标情…

还在为选择办公软件而烦恼吗?不妨试试ONLYofficeV8.0

目录 一.优势一DOC 1.丰富的文字处理功能 2.按用户既定的规则编辑 3.使用AI助手 4.保持创意 5.深入分析文本 6.改善团队工作流程 7.轻松对比文档 8.扩展编辑功能 二.优势二sheet 1.数据分析 2.轻松实现精准计算 3.轻松分析数据 4.可视化呈现数据 5.增强团队协作…

通过盲注脚本复习sqllabs第46关 order by 注入

Less-46 从本关开始,我们开始学习 order by 相关注入的知识。本关的 sql 语句为$sql "SELECT * FROM users ORDER BY $id";尝试?sort1 desc或者 asc,显示结果不同,则表明可以注入。(升序 or 降序排列)从上述的 sql 语句中我们可以…

Netty-初体验

Netty 引入依赖服务端服务端处理读写业务的Handler客户端实现客户端handler Netty具备设计优雅、使⽤⽅便、性能强劲等优点&#xff0c; 引入依赖 <dependency><groupId>io.netty</groupId><artifactId>netty-all</artifactId><version>…

CVE-2024-0918 TEW-800MB RCE漏洞分析

漏洞描述 固件版本为1.0.1.0的TEW-800MB路由器存在命令注入漏洞。如果攻击者获得了web管理权限&#xff0c;他们可以将命令注入到httpd未知函数中的post请求参数DeviceURL中&#xff0c;从而获得shell权限。。 参考链接 TEW-800MB (notion.site)https://warp-desk-89d.notio…

盘点那些世界名校计算机专业采用的教材

清华、北大、MIT、CMU、斯坦福的学霸们在新学期里要学什么&#xff1f;今天我们来盘点一下那些世界名校计算机专业采用的教材。 书单目录 1.《深入理解计算机系统》&#xff08;原书第3版&#xff09;2. 《算法导论》&#xff08;原书第3版&#xff09;3. 《计算机程序的构造和…

【已解决】Zip压缩文件设置了密码怎么办?

Zip是一种常见的压缩格式文件&#xff0c;文件还可以设置密码保护。那设置了密码的Zip文件要如何打开呢&#xff1f;不清楚的小伙伴一起来看看吧。 想要打开带密码的Zip文件&#xff0c;我们需要用到适用于Zip格式的解压缩软件&#xff0c;比如WinRAR或者7-Zip软件都是可以的。…

【数据结构】_队列

目录 1.概念 2.队列的使用 3.队列模拟实现 4.循环队列 5.双端队列 6.栈与队列的互相实现 6.1 用队列实现栈 6.2 用栈实现队列 1.概念 &#xff08;1&#xff09;队列是只允许在一端进行插入数据操作&#xff0c;在另一端进行删除数据操作的特殊线性表&#xff1b; &am…

PyTorch深度学习实战(37)——CycleGAN详解与实现

PyTorch深度学习实战&#xff08;37&#xff09;——CycleGAN详解与实现 0. 前言1. CycleGAN 基本原理2. CycleGAN 模型分析3. 实现 CycleGAN小结系列链接 0. 前言 CycleGAN 是一种用于图像转换的生成对抗网络(Generative Adversarial Network, GAN)&#xff0c;可以在不需要配…

分布式事务-CAP定理+BASE理论+解决方案(两阶段提交+TCC事务)

事务就是指一个操作单元&#xff0c;操作单元中的所有操作要么同时成功要么同时失败。单体项目中的事务一般都是使用数据库提供的事务机制来完成的&#xff0c;但是分布式事务的事务参与者位于不同的节点上&#xff0c;也就是分布在不同的服务器上。分布式事务的最大问题就是各…

安卓游戏开发之音频技术优劣分析

一、引言 在安卓游戏开发中&#xff0c;音频处理技术扮演着至关重要的角色&#xff0c;它不仅能够增强游戏的沉浸感和玩家体验&#xff0c;还能通过声音效果传达关键的游戏信息。以下将对几种常见的安卓游戏音频处理技术进行优劣分析&#xff0c;并结合应用场景来阐述其特点。 …

Jmeter之内置函数__property和__P的区别

1. __property函数 作用 读取 Jmeter 属性 语法格式 ${__property(key,var,default)} 参数讲解 小栗子 ${__property(key)} 读取 key 属性如果找不到 key 属性&#xff0c;则返回 key&#xff08;属性名&#xff09; ${__property(key,,default)} 读取 key 属性如果找不到 k…

Linux内核中并发与竞争的处理方法之原子操作简介

一. 简介 当我们发现驱动程序中存在并发和竞争的时候一定要处理掉&#xff0c;接下来我们依次来学习一下 Linux 内核提供的几种并发和竞争的处理方法。 本文学习Linux内核提供的一种处理并发与竞争的方法&#xff1a;原子操作。 二. 原子操作简介 原子操作就是指不能再进一步…

【旧文更新】基于STM32L496的低功耗ADXL345加速度读取、TMP75温度检测

【旧文更新】基于STM32L496的低功耗ADXL345加速度读取、TMP75温度检测 文章目录 关于旧文新发加速度和温度检测附录&#xff1a;Cortex-M架构的SysTick系统定时器精准延时和MCU位带操作SysTick系统定时器精准延时延时函数阻塞延时非阻塞延时 位带操作位带代码位带宏定义总线函…

抖音小店怎么做起来?分享几种起店方式,新手商家认真选择!

大家好&#xff0c;我是电商糖果 网上关于抖音小店的起店方式有很多&#xff0c;有人说这种模式利润高&#xff0c;有人说这种模式长久。 东听一句&#xff0c;西听一句&#xff0c;让很多朋友感到比较迷茫。 根本不知道哪种方式更适合自己。 这里糖果就把网上最常见的五种…

线性代数:线性方程组解的结构

目录 齐次/非齐次方程组的解 Ax 0 的解的性质 定理 Ax b 的解的性质 相关证明 例1 例2 例3 齐次/非齐次方程组的解 Ax 0 的解的性质 定理 Ax b 的解的性质 相关证明 例1 例2 例3

2023年12月 Python(五级)真题解析#中国电子学会#全国青少年软件编程等级考试

Python等级考试(1~6级)全部真题・点这里 一、单选题(共25题,共50分) 第1题 下面代码的输出结果是?( ) dict1 = {1: 10, 2: 20, 3: 30} dict2 <

C#,大规模图(Large Graph)的均匀成本搜索之迪杰斯特拉(Dijkstra)算法与源代码

1 均匀成本搜索 均匀成本搜索是迪杰斯特拉算法的变体。这里&#xff0c;我们不是将所有顶点插入到一个优先级队列中&#xff0c;而是只插入源&#xff0c;然后在需要时一个接一个地插入。在每一步中&#xff0c;我们检查项目是否已经在优先级队列中(使用访问数组)。如果是&…

Day04 嵌入式---基本定时器

定时器概述 1、软件定时原理 使⽤纯软件的⽅式实现定时功能。 存在的问题&#xff1a;定时不太精准。CPU死等。 1&#xff09;压栈出栈需要花费时间 2&#xff09;ARM流⽔线体系架构的原因 2、定时器定时原理 使用精准的时基&#xff0c;通过硬件方式&#xff0c;实现定…