如何在Linux系统使用Docker本地部署Halo网站并实现无公网IP远程访问

最近,我发现了一个超级强大的人工智能学习网站。它以通俗易懂的方式呈现复杂的概念,而且内容风趣幽默。我觉得它对大家可能会有所帮助,所以我在此分享。点击这里跳转到网站。

文章目录

    • 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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[Linux初阶]which-find-grep-wc-管道符命令

目录 一.which 二.find a.-name b.-size 三.grep 四.wc 五.管道符(|) 五.总结 一.which 语法格式: which [命令] Linux中的一个个命令,本体上就是一个个的二进制可执行程序(相当于windows中的.exe文件). 在Linux中,一切皆文件. which命令:用于查看指定命令的可执行…

恒创科技:服务器反应慢如何解决?

​  通常来说,访问者会在最初的几秒钟内决定是留在您的网站还是离开。如果页面加载时间超过五秒,访问者离开的可能性就会增加 90%。所以,作为站长们,必须减少服务器响应时间,以确保其网站加载速度更快。以下是减少网…

ceres-solver-1.14.0安装教程

引言 简单记录下安装ceres-solver-1.14.0的过程,简单了解。 1、下载安装包 wget ceres-solver.org/ceres-solver-1.14.0.tar.gz 2、安装依赖 sudo apt-get install -y cmake libgoogle-glog-dev libatlas-base-dev libsuitesparse-dev3、 cd ceres-solver-1.14…

【包远程安装运行】SpringBoot+Mysql+Vue实现的4S店保养与维修系统源码+运行视频+包运行+开发文档

今天发布的是一款由SpringBootVueMysql实现的4S店保养与维修后台管理系统,该系统共分为两个角色,具体的功能如下: 管理员功能:供应商管理、采购管理、品牌管理、维修报单管理、车型管理、配件管理、车辆信息管理、套餐管理、维修记…

力扣HOT100 - 11. 盛最多水的容器

解题思路&#xff1a; 双指针&#xff0c;从左右两边往内侧夹逼&#xff0c;遍历后得到最大值 class Solution {public int maxArea(int[] height) {int i 0, j height.length - 1, res 0;while(i < j) {res height[i] < height[j] ? Math.max(res, (j - i) * heig…

如何在Linux系统使用宝塔面板搭建Inis博客并发布至公网【内网穿透】

文章目录 前言1. Inis博客网站搭建1.1. Inis博客网站下载和安装1.2 Inis博客网站测试1.3 cpolar的安装和注册 2. 本地网页发布2.1 Cpolar临时数据隧道2.2 Cpolar稳定隧道&#xff08;云端设置&#xff09;2.3.Cpolar稳定隧道&#xff08;本地设置&#xff09; 3. 公网访问测试总…

Paper Digest|基于在线聚类的自监督自蒸馏序列推荐模型

论文标题&#xff1a; Leave No One Behind: Online Self-Supervised Self-Distillation for Sequential Recommendation 作者姓名&#xff1a; 韦绍玮、吴郑伟、李欣、吴沁桐、张志强、周俊、顾立宏、顾进杰 组织单位&#xff1a; 蚂蚁集团 录用会议&#xff1a; WWW 2024 …

【计算机】——51单片机——持续更新

单片机是一种内部包含CPU、存储器和输入/输出接口等电路的集成电路&#xff08;IC芯片&#xff09; 单片机是单片微型计算机&#xff08;Single Chip Microcomputer&#xff09;的简称&#xff0c;用于控制领域&#xff0c;所以又称为微型控制器&#xff08;Microcontroller U…

STM32CubeMX 生成的代码框架解析 - 最小化工程篇(含FreeRTOS)

文章目录 前言1. 创建工程说明2. 目录结构介绍2.1 总目录2.2 Core文件夹2.3 Drive文件夹2.4 MKD-ARM2.5 Middlewares2.6 IDE配置文件 3. 重点文件介绍3.1 Core文件夹3.1.1 srcfreertos.cmain.cstm32l4xx_hal_msp.cstm32l4xx_it.csystem_stm32l4xx.c 3.1. 2 includeFreeRTOSConf…

java 高级面试题(借鉴)(下)

雪花算法原理 第1位符号位固定为0&#xff0c;41位时间戳&#xff0c;10位workId&#xff0c;12位序列号&#xff0c;位数可以有不同实现。 优点&#xff1a;每个毫秒值包含的ID值很多&#xff0c;不够可以变动位数来增加&#xff0c;性能佳&#xff08;依赖workId的实现…

挺后悔,我敷衍地回答了“程序员如何提升抽象思维“

分享是最有效的学习方式。 博客&#xff1a;https://blog.ktdaddy.com/ 大家好&#xff0c;我是老猫。 大概在月初的时候&#xff0c;我发了一篇文章【当程序员之后&#xff1f;(真心话)】,在这篇文章中&#xff0c;提及了抽象思维对一名程序员的重要性。可能说得也比较笼统&a…

UML 类关系表示

类之间关系&#xff1a;依赖、泛化&#xff08;继承&#xff09;、实现、关联、聚合与组合 类与类、类与接口之间的关系表示&#xff1a; 纵向关系&#xff1a;继承、实现 横向关系&#xff1a;依赖、关联、聚合与组合&#xff0c;从强到弱依次为&#xff1a;组合、聚合、关联…

文献学习-22-Surgical-VQLA:具有门控视觉语言嵌入的转换器,用于机器人手术中的视觉问题本地化回答

Authors: Long Bai1† , Mobarakol Islam2† , Lalithkumar Seenivasan3 and Hongliang Ren1,3,4∗ , Senior Member, IEEE Source: 2023 IEEE International Conference on Robotics and Automation (ICRA 2023) May 29 - June 2, 2023. London, UK Abstract: 尽管有计算机辅…

反沙箱思路总结

文章目录 反调试反沙箱时间对抗环境检测 反虚拟机黑DLL父进程检测傀儡进程后记 反调试 IsDebuggerPresent #include<windows.h> #include<stdio.h> BOOL check() {return IsDebuggerPresent(); } BOOL isPrime(long long number){if (number < 1)return FALSE…

水下蓝牙耳机哪个好?必看4款购买单,拒绝踩雷!

在当今的科技时代&#xff0c;无线蓝牙耳机已经成为了我们生活中不可或缺的一部分。无论是运动、工作还是休闲娱乐&#xff0c;一款好的蓝牙耳机都能为我们带来极大的便利和乐趣。然而&#xff0c;在水下使用蓝牙耳机却是一个相对特殊的应用场景&#xff0c;需要考虑到防水、防…

关系(一)利用python绘制散点图

关系&#xff08;一&#xff09;利用python绘制散点图 散点图 &#xff08;Scatterplot&#xff09;简介 在笛卡尔座标上放置一系列的数据点&#xff0c;检测两个变量之间的关系&#xff0c;这就是散点图。 散点图可以了解数据之间的各种相关性&#xff0c;如正比、反比、无相…

[linux]--关于进程概念(下)

目录 孤儿进程 环境变量 将程序放到PATH路径下 设置PATH环境变量 设置别名 环境变量相关的命令 环境变量的组织方式​编辑 通过系统调用获取环境变量 环境变量通常是具有全局属性的 进程优先级 查看系统进程 用top命令更改已存在进程的nice&#xff1a; 程序地址空…

【Python实战】——神经网络识别手写数字

&#x1f349;CSDN小墨&晓末:https://blog.csdn.net/jd1813346972 个人介绍: 研一&#xff5c;统计学&#xff5c;干货分享          擅长Python、Matlab、R等主流编程软件          累计十余项国家级比赛奖项&#xff0c;参与研究经费10w、40w级横向 文…

评测i5 1335U和r7 8840HS差距 酷睿i51335U和r78840HS对比

r7 8840HS采用 Zen 4架构 4 nm制作工艺8核 16线程主频 3.3GHz睿频5.1GHz 三 级缓存16MB TDP 功耗 28w 搭载AMD Radeon 780M核显 选i5 1335U还是i5 1235U这些点很重要http://www.adiannao.cn/dy i5 1335U处理器采用10nm工艺制程&#xff0c;拥有10核心12线程&#xff0c;最大睿…

接口关联和requests库

一、接口关联 postman的接口 postman的接口关联配置&#xff1a;js代码&#xff0c;重点在于思路。 // 定义jsonData这个变量 接受登录接口的返回结果 var jsonData JSON.parse(responseBody); // 从返回结果里提取token/id值&#xff0c;并赋值给token/id变量值作为环境变…