利用容器技术搭建hexo博客

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 本文简要介绍了云服务器的选择及常用配置,使用技巧。作为计算机从业者,拥有一个美观的个人博客是很有必要的,本人通过使用docker容器技术搭建hexo博客运行环境,并通过开源的博客主题hexo-butterfly来美化自己的博客,并配置搭载聊天系统、评论系统、搜索系统等实用工具使博客功能更加强大。同时为了方便写作,搭建了后台管理系统,让人们可以随时随地的撰写博客,不受个人电脑的限制,让技术人员爱上写作。

一、自我介绍

本人本科毕业于东北大学能源与动力工程专业,研究生就读于长沙理工大学计算机科学与技术专业,目前研二在读,即将升入研三,作为一名转码人,十分爱好编程技术,同时也深知技术博客对程序员的重要性,但那些所谓的知名博客平台比如CSDN之流,广告漫天飞,各种抄来抄去没有重点,实在没有让人写作的欲望。于是就想自己搭建一个个性化的博客,为了能自由的搭建各种服务,急需一台云服务器。于是通过同学介绍了解到了阿里云平台的学生活动,可以白嫖2.5个月的云服务器!是的,你没有听错,真真的免费,而且还是高配版,太香了,博客有着落了!真心感谢阿里云为学生推出的的飞天加速计划,让梦想落地!

二、博客开发攻略

1. 阿里云ECS配置

在选择地域时,推荐北上广深等发达地区,响应速度会快一些,并且推荐安装ubuntu20.04的镜像,用户生态很丰富,找bug也会方便很多,stackoverflow上对该型号的Linux系统问题解答较为全面。实例的root密码一定要设置的比较复杂,因为服务器默认开启ssh的22端口,如果知道你的公网ip,则容易被破解。当开始使用该云服务器时,最好不要直接用root身份登录进行操作,因为这是系统的最高权限,比较容易操作不当误造成不可逆的损失,推荐创建一个新的用户账号并赋予sudo组的权限来进行操作

新用户配置代码如下

adduser aliyun # 如新建用户aliyun
usermod -aG sudo aliyun #绑定到sudo组 即赋予sudo权限

这样就可以用ssh登录服务器

ssh user@hostname -p port # 以用户user登录服务器hostname(ip) 并指定登录的端口

使用ssh登录云服务器时每次都要输入用户名ip繁琐又不好记,可以在ssh中为服务器IP配置别名

~/.ssh/config #配置文件
Host myserver
    HostName IP地址或域名
    User 用户名
#这样就可以直接输入 就可以登录了
ssh myserver 

每次登录时输入密码很是不便,可以通过ssh配置免密登录

ssh-keygen # 生成ssh秘钥
id_rsa :私钥
id_rsa.pub :公钥

ssh-copy-id myserver #配置免密登录
#这样下次就可以不用输入密码了 直接登录起飞

和云服务器之间常常会有互传文件的需求,也可以通过ssh来完成

#将本地文件上传服务器

#将本地家目录中的 tmp 文件夹复制到 myserver 服务器中的 /home/acs/ 目录下
scp -r ~/tmp myserver:/home/acs/
将本地家目录中的 tmp 文件夹复制到 myserver 服务器中的 ~/acs 目录下。
scp -r ~/tmp myserver:acs

#将服务器文件下载到本地
# 将 myserver 服务器中的 ~/homework/ 文件夹复制到本地的当前路径下。
scp -r myserver:homework .

ps:传文件更方便可以用vscodeRemote Explorer插件 可视化一键登录云服务器并修改文件

2. 博客环境搭建

为了省去node环境配置以及框架的安装,推荐直接使用docker容器技术,完整统一的运行环境随取随用,这里使用docker-compose基于node:14-alpine官方镜像搭建hexo容器服务。并且为了方便操纵容器,写了一系列脚本控制

docker部分目录截图如下

image-20220703232450057

可以很方便的重启容器服务及进入容器

image-20220703232812382

3. 博客主题配置

推荐使用hexobutterfly主题,谁用谁知道,具体配置github上的官网仓库都有,这里就不展开说了。下面讲以下推荐的配置

  • 代码高亮

    highlight_theme: mac light #  darker / pale night / light / ocean / mac / mac light / false
    highlight_copy: true # copy button
    highlight_lang: true # show the code language
    highlight_shrink: false # true: shrink the code blocks / false: expand the code blocks | none: expand code blocks and hide the button
    highlight_height_limit: 700 # unit: px
    code_word_wrap: false
  • 启用本地搜索

    # Local search
    local_search:
      enable: true
      preload: true
      CDN:
  • markdown数学公式选择

    # KaTeX
    katex:
      enable: true
      per_page: false
      hide_scrollbar: true
  • 评论系统选择gitalkgithub无缝对接

    comments:
      use: gitalk # livere(有广告),gitalk
      text: true # Display the comment name next to the button
      # lazyload: The comment system will be load when comment element enters the browser's viewport.
      # If you set it to true, the comment count will be invalid
      lazyload: false
      count: false # Display comment count in post's top_img
      card_post_count: false # Display comment count in Home Page
  • 主题美化

    # Fluttering Ribbon (動態彩帶)
    canvas_fluttering_ribbon:
      enable: true
      mobile: false
    # Mouse click effects: fireworks (鼠標點擊效果: 煙火特效)
    fireworks:
      enable: true
      zIndex: 99 # -1 or 9999
      mobile: true
    # Beautify (美化頁面顯示)
    beautify:
      enable: true
      field: post # site/post
      title-prefix-icon: # '\f0c1'
      title-prefix-icon-color: # '#F47466'

4.博客展示

  • 首页

    image-20220703234455578

  • 主页

    image-20220703234541022

  • 搜索

    image-20220703234623104

  • 聊天

    image-20220703234708756

  • 评论系统

    image-20220703234759495

  • 文章样式

image-20220703234907786

image-20220703234953301

  • 黑夜模式

    image-20220703235028400

5.添加后台管理系统

每次写文章时都需要在本地写好,然后在上传服务器,再重启项目重新生成,这样的流程会比较繁琐,如果能有一个可视化的后台管理系统,直接在线写代码然后一键部署岂不美哉。通过搜寻找到了hexo-admin这个开源项目,可对文章增删改查,通过配置,可自己编写自动化部署脚本,从此让写作更加方便,也不需要每次都登录服务器了,极大地方便了作者。

后台管理页面展示如下:

  • 登录

    image-20220704103356998

  • 管理首页

    image-20220704103515805

  • 文章在线编写

    image-20220704103627079

  • 一键部署

    image-20220704103725581

三、总结与展望

通过阿里云的飞天加速计划,我在短期内快速提升了服务搭建能力和前端技术,了解了如何使用云服务器,并且通过设置安全组来控制端口的开发与否提升系统的安装性,并系统学习了docker容器技术并了解了前端的node.js的使用,通过使用流行的开源库生成极好的博客体验,让我真正的爱上技术,爱上写作,在未来我将在我的博客上集成一些自己写的小游戏以及程序员常用的一些小工具,让博客的功能更加强大。当然,这一切都离不开云服务器的支持,非常感谢阿里云的这次机会,让经济拮据学生时代的我们也能享用云计算时代为开发者带来的便利。

相关实践学习
通义万相文本绘图与人像美化
本解决方案展示了如何利用自研的通义万相AIGC技术在Web服务中实现先进的图像生成。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3月前
|
存储 容器
46.[HarmonyOS NEXT RelativeContainer案例三] 打造自适应容器:内容驱动的智能尺寸调整技术
在HarmonyOS NEXT的UI开发中,创建能够根据内容自动调整尺寸的容器是实现灵活布局的关键。RelativeContainer结合自适应尺寸设置,可以实现内容驱动的智能尺寸调整,使UI更加灵活且易于维护。本教程将详细讲解如何创建自适应尺寸的RelativeContainer,帮助你掌握这一实用技术。
121 5
|
1月前
|
Kubernetes Cloud Native 持续交付
Docker:轻量级容器化技术解析
Docker:轻量级容器化技术解析
|
1月前
|
运维 测试技术 Docker
Docker:轻量级容器化技术革命
Docker:轻量级容器化技术革命
|
9月前
|
Kubernetes Cloud Native 微服务
探索云原生技术:容器化与微服务架构的融合之旅
本文将带领读者深入了解云原生技术的核心概念,特别是容器化和微服务架构如何相辅相成,共同构建现代软件系统。我们将通过实际代码示例,探讨如何在云平台上部署和管理微服务,以及如何使用容器编排工具来自动化这一过程。文章旨在为开发者和技术决策者提供实用的指导,帮助他们在云原生时代中更好地设计、部署和维护应用。
|
5月前
|
弹性计算 Java Maven
从代码到容器:Cloud Native Buildpacks技术解析
Cloud Native Buildpacks(CNB)是一种标准化、云原生的容器镜像构建系统,旨在消除手动编写Dockerfile,提供可重复、安全且高效的构建流程。它通过分层策略生成符合OCI标准的镜像,实现应用与基础镜像解耦,并自动化依赖管理和更新。阿里云应用管理支持通过CNB技术一键部署应用至ECS,简化构建和运行流程。
|
6月前
|
存储 虚拟化 Docker
|
6月前
|
开发工具 虚拟化 git
自学软硬件第755 docker容器虚拟化技术youtube视频下载工具
docker容器虚拟化技术有什么用?怎么使用?TubeTube 项目使用youtube视频下载工具
|
9月前
|
Unix Linux Docker
CentOS停更沉寂,RHEL巨变限制源代:Docker容器化技术的兴起助力操作系统新格局
操作系统是计算机系统的核心软件,管理和控制硬件与软件资源,为用户和应用程序提供高效、安全的运行环境。Linux作为开源、跨平台的操作系统,具有高度可定制性、稳定性和安全性,广泛应用于服务器、云计算、物联网等领域。其发展得益于庞大的社区支持,多种发行版如Ubuntu、Debian、Fedora等满足不同需求。
265 5
|
10月前
|
运维 Kubernetes Docker
深入理解容器化技术:Docker与Kubernetes的协同工作
深入理解容器化技术:Docker与Kubernetes的协同工作
251 14
|
10月前
|
持续交付 开发者 Docker
探索容器化技术Docker及其在现代软件开发中的应用
探索容器化技术Docker及其在现代软件开发中的应用
148 10