基于Docker搭建halo博客

简介: 实例安装Ubuntu20.04系统,通过MobaXterm远程连接ECS,同时通过安装宝塔面板和部署LNMP环境,基于Docker搭建了halo博客应用。


1. 搭建步骤

通过阿里云新手训练营可以很容易上手ECS,完成实例创建及一些基本操作,包括重置密码,远程登录ECS,以及查看ECS详情信息,云盘状态等等。这里,不再赘述。

创建实例的过程中可以根据个人状态选择ECS的操作系统,本人了搭建博客需要,还有就是考虑到个人应用习惯,选择了Ubuntu 20.04系统,创建完成后,通过实例详情也没的重置实例密码来重置ECS的密码,重启后生效。

1.1 MobaXterm远程连接ECS

重启完成后,本人选择了使用MobaXterm软件来远程登录ECS控制台,这里可以根据个人习惯选择,比如常用的远程ssh登录软件有:SecurityCRT、putty、Finalshell等等。

3cf0127d91844f45a9fd71c86983ae9babd31fb5ec154d9b935c225fbf64c1cf

1.2  更新软件包

登录成功后,首选运行以下命令更新软件包:

apt update

apt upgrade

1.3 安装宝塔面板

在宝塔官网使用命令行安装宝塔面板,可以根据自己的系统来选择相应的命令,等待安装完成:

wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh

3d916b321edc4f47976cc466c1feb047接下来通过安装成功后提示的外网地址链接和用户名、密码在浏览器中访问宝塔面板,如果显示无法访问,则需要首先在实例详情页面的安全组中,选择配置规则,添加入方向规则,放行8888端口,如图所示。

b6192640f1574f5da9efd7b75a950d6c1c6611390a0c4774998cc580ca98b6a201ea7c20d9cd4e74b892f8482f07e98c

1.4 安装LNMP

在浏览器输入宝塔面板链接,并输入生成的面板用户名和密码,登录成功后安装LNMP,这里选择极速安装方式,该部分安装时间可能需要等待一段时间,等待其安装完成。

d866d10b67844a1cae8eb3e002d3069e在宝塔面板的消息盒子中可以查看安装进度:

3eabea9e1e2e499181d73ce0360107503a5f991d0f16414487d9342e0cb6cdcd

1.5 安装docker

通过在终端中依次输入以下命令安装docker.

Set up the repository

apt-get update apt-get install ca-certificates curl gnupg lsb-release curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

echo "deb [arch=$(dpkg --print-architecture) signed-y=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Install Docker Engine

apt-get update

apt-get install docker-ce docker-ce-cli containerd.io

docker run hello-world

出现以下信息表示,docker安装成功:

a0c4bdf600ad4aa1a084629e7cf6d8dd

1.6  安装halo博客

Halo[ˈheɪloʊ],一款现代化的开源博客/CMS系统,安装配置简单,可以使用命令行或者docker安装,本文选择使用docker安装方式。

  1. 创建 工作目录

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

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

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

32560cb6fa2e40c2b847c6cc30be2796

  1. 编辑配置文件,配置数据库或者端口等,如需配置请参考 配置参考

vim application.yaml

  1. 拉取最新的 Halo 镜像

docker pull halohub/halo:1.5.0

392ffad764f145e3a74f795035552fe9

  1. 创建容器

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

-restart=unless-stopped halohub/halo:1.5.0

  • -it:开启输入功能并连接伪终端

  • -d:后台运行容器

  • --name:为容器指定一个名称

  • -p:端口映射,格式为 主机(宿主)端口:容器端口,可在 application.yaml配置。

  • -v:工作目录映射。形式为:-v 宿主机路径:/root/.halo,后者不能修改。

  • --restart:建议设置为 unless-stopped,在 Docker 启动的时候自动启动 Halo 容器。

  1. 打开 http://ip:端口号即可看到安装引导界面。同样,在访问页面之前,需要将halo使用的端口(默认为8090)在访问规则中放行。

a67000dbd7b24021bb7b731cea55cbe2访问成功后的界面,输入管理员信息和网站信息,然后就可以访问halo博客的管理界面了。

2e6a6255dcd24810b918b4daa919d77490d680ff875345febe5312b1aa8cb667halo博客支持多种主题界面,可以通过管理界面中的外观->主题,选择安装自己喜欢的主题样式,支持本地安装和在线安装,非常方便。我这里使用Joe2.0主题。

baff0d68a116404c9dbffb647f88c063a975ab5ec1be4f5aba4b4612bc1b602e2b2cadf095d74066b72b88ef807fe712

1.7 设置反向代理

到这里其实博客已经搭建完成,但是访问的时候用的还是IP地址:端口形式访问,这样既不安全也不容易记忆,因此,需要设置反向代理,在设置之前需要购买一个域名,并解析到现有的阿里云ECS主机,域名购买的步骤在这就不详细介绍了,下面只介绍如果在宝塔面板进行网站部署和进行反向代理设置。

在宝塔面板网站选项中,选择添加站点,输入解析好的域名,点击保存;

78f538bae16d422392d9cfbf549e9bc0部署SSL证书,并强制HTTPS;

15b1b300c13d4e0b8b9df51ed976af7d更改nigix服务配置:

b2d662f33ffc47b28da6130f3a3b3717并添加以下代码:

    location / {
      proxy_pass http://127.0.0.1:8090/;
      rewrite ^/(.*)$ /$1 break;
      proxy_redirect off;
      proxy_set_header Host $host;
      proxy_set_header X-Forwarded-Proto $scheme;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Upgrade-Insecure-Requests 1;
      proxy_set_header X-Forwarded-Proto https;
    }

fe16c0a710694a2bb7c3344613a5e0dd在安全规则中,放行80和443端口,然后就可以使用域名访问博客了。

8bec35d4606d4506a199dddb6634f01ea1936b488db04a27b79e11462a72e210

2. 搭建完成后的效果

搭建完成后的博客样子如下,接下来就可以在上面记录自己的学习笔记或者人生感悟了!

dd26e8d5af5e411bb19aed357d5d6dbe

本文转载自飞天加速计划,作者为人工智能专业在读博士:文章链接

作者介绍
目录