『亚马逊云科技产品测评』活动征文|云服务器如何快速搭建个人博客(图文详解)

授权声明:本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在 Developer Centre, 知乎,自媒体平台,第三方开发者媒体等亚马逊云科技官方渠道

文章目录

  • 引言
  • 一、前期准备步骤
    • 1.1 准备一个亚马逊 EC2 服务器
    • 1.2 进入控制台安装 git
    • 1.3 安装Docker 和 Docker compose
  • 二、博客开源项目介绍
    • 2.1 操作界面展览
  • 三、拉取项目搭建个人博客
    • 3.1 拉取项目进行配置
    • 3.2 启动Docker服务配置个人站站点
      • 查看项目
      • 配置http服务并启动 Docker
    • 3.3启动基于Docker Compose配置文件的容器服务:
        • 配置docker-compose PATH环境变量
        • 启动Docker Compose容器服务
    • 3.4 安全组中开放 8080端口
  • 四、访问个人网站
  • 结尾

引言

Docker Compose是一个用于定义和运行多个 Docker 容器的工具,负责快速的部署分布式应用。可以轻松解决由多个相互依赖的服务组成,启动、停止和扩展整个应用程序,并确保各个服务之间的通信和依赖关系正确配置的项目。
今天就来带大家在亚马逊云服务上使用 Docker compose 拉取 github 上的博客开源项目快速搭建一个属于自己的个人博客网站,下面我们就来看看具体教程吧!

一、前期准备步骤

1.1 准备一个亚马逊 EC2 服务器

亚马逊的云服务器我们前面已经介绍过了,只需要官网进行注册就可以免费进行领取一年的 EC2 云服务器了;

  • 可以说免费额度也是非常的大了,够我们折腾好久了。

然后进入亚马逊官网找到 Amazon EC2
在这里插入图片描述
之后就可以看到免费周期为一年的免费套餐了
在这里插入图片描述
解下来就是注册然后进入里面来,去购买实例了,大家一步步完成就好了。
在这里插入图片描述

1.2 进入控制台安装 git

好了亚马逊的云服务器准备了之后接下来就简单了直接利用 SSH 链接进云服务器就可以了。
在这里插入图片描述

在这里插入图片描述
然后运行 yum 命令来安装git

  • sudo yum install git

在这里插入图片描述
在这里插入图片描述
出现这个就安装好我们的 git 了,后面可以直接用 git 来拉取开源项目。

  • 我们也可以使用 git --help 查看帮助文档
  • 来看看git是否安装成功
    在这里插入图片描述
    这里就可以看到 git 的各种操作了。

1.3 安装Docker 和 Docker compose

由于我们本次的项目是基于Docker 来进行搭建的,所以安装 Docker 是必不可少的。

  • 安装Docker: sudo yum install docker -y

在这里插入图片描述
在这里插入图片描述
老样子出现这个界面就是 Docker 安装成功了,下面就是安装 Docker compos 的步骤了:

  1. 下载二进制包
# 下载二进制包
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

  1. 给予可执行权限
# 给予可执行权限
sudo chmod +x /usr/local/bin/docker-compose
  1. 查看是否部署成功
# 查看是否部署成功
docker-compose --version

📑图片展示:

在这里插入图片描述
这里我们可以看到**docker-compose** 已经安装成功,版本是 Docker Compose version v2.23.0

二、博客开源项目介绍

本次我们选择搭建的个人博客开源软件是 solo ,很多程序员的第一个个人博客都是基于他去搭建。

  • solo github 开源网站链接:一键进入

他这里是由 java 实现的程序编写,有前端界面和后端管理系统供我们使用,并且还可以一键更换皮肤。

  • 如果大家对里面的预设皮肤不满意也可以对他的源码进行更改
  • 去修改这里的源码,做一些定制化内容

在这里插入图片描述

在这里插入图片描述

这里就只给大家展示一点剩下的可以自己去文档里面看哦!

2.1 操作界面展览

开始使用
start.png

浏览界面
在这里插入图片描述

编辑文章
post.png
个性皮肤
在这里插入图片描述

三、拉取项目搭建个人博客

由于我们是使用 Docker 来构建项目的所以,我们需要进到另外一个项目
solo in Docker 的项目里来进行使用 Docker 的方法一键部署个人博客。

  • 这个项目是另外一个程序员基于 solo 开发的项目
  • 不过在上面开发这个开源软件的操作文档有些写,就下文档下方
  • 项目网站: 一键直达

在这里插入图片描述
在这里插入图片描述

3.1 拉取项目进行配置

先进行拉取项目把,开源项目克隆到本地:

git clone https://github.com/liumapp/solo-in-docker.git

在这里插入图片描述

3.2 启动Docker服务配置个人站站点

查看项目

这里我们项目拉取完成之后就可以用 ls 查看一下项目是否拉取成功。

  • solo-in-docker 就是我们的的项目文件
    在这里插入图片描述
    然后 cd 进入可以看到整个项目的框架是和 github 是一模一样的
    在这里插入图片描述

配置http服务并启动 Docker

然后查看目录 cd 进入 http 去启动 Docker 服务,确保服务已启动。

  • 启动命令 sudo service docker start
    在这里插入图片描述
    配置http目录下的rdocker-compose文件,修改自己的域名跟端口

  • cd 进入 http

  • vi docker-compose.yml 进行设置域名和端口

  • 在这里插入图片描述在这里插入图片描述
    这里我们可以看到 ports 部分的映射,为 8080,这样我们就可以使用 :

  • http://localhost:8080 来访问我们的 solo-in-docker

  • 的个人博客项目了,当然如果你想改成其他端口访问网站也可以

在这里插入图片描述

🔥 注:我们这里并不做端口修改继续使用8080端口进行访问。

当然这里只是做简单端口访问,后期大家可以去申请个人域名来进行访问

  • 申请号域名之后:
  • Docker Compose 文件中,在 solomysql 配置中添加一个 hostname 参数:
    在这里插入图片描述
    在这里插入图片描述

3.3启动基于Docker Compose配置文件的容器服务:

配置docker-compose PATH环境变量

sudo docker-compose up 如果运行不了:

  • 说明我们的 docker-compose 命令没有添加到PATH环境变量中
//设置docker-composePATH环境变量
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
启动Docker Compose容器服务
  • 以管理员权限运行Docker Compose的命令
  • sudo docker-compose up

在这里插入图片描述

3.4 安全组中开放 8080端口

好了到这里我们的整个项目就搭建好了,现在只需要去开放安全组,8080/8080 端口进行访问就可以了。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、访问个人网站

以上就是搭建个人网站的全部过程了,可以说是非常详细了,零基础小白也可快速搭建个人博客网站;

  • 下面我们来看看成果把:
  • 访问地址是公网地址 + 8080端口哦!

在这里插入图片描述

登录就可以访问我们的前端界面了使用起来也是非常的流畅

  • 目前我们的网站还只能通过公网加端口的方式登录
  • 后期大家可以去申请一下域名映射一下就可以通过域名访问了
  • 正式上线了

好了废话不多说我们来进入后端来看看

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里大家可以看到功能非常的多啊,可以更换自定义皮肤和写文章管理等等。

结尾

以上就是Docker compose快速搭建个人博客的全过程了,部署起来非常方便。很多技术大牛都有自己的个人博客来用于记录生活和发表个人看法,快去建出属于你自己的个人博客网站来作为自己的成长的记录吧。

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

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

相关文章

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK设置相机的固定帧率(C++)

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK设置相机的固定帧率(C) Baumer工业相机Baumer工业相机的固定帧率功能的技术背景CameraExplorer如何查看相机固定帧率功能在NEOAPI SDK里通过函数设置相机固定帧率 Baumer工业相机通过NEOAPI SDK设置相机固定…

ARCGIS PRO SDK 访问Geometry对象

一、Geometry常用对象 二、主要类 1、ReadOnlyPartCollection:Polyline 和 Polygon 使用的 ReadOnlySegmentCollection 部件的只读集合,属性成员:​ 名字描述Count获取 ICollection 中包含的元素数。TIEM获取位于指定索引处的元素。Spatial…

CCNP课程实验-Route_Path_Control_CFG

目录 实验条件网络拓朴需求 配置实现基础配置需求实现1.A---F所有区用Loopback模拟,地址格式为:XX.XX.XX.XX/32,其中X为路由器编号。根据拓扑宣告进对应协议。A1和A2区为特例,A1:55.55.55.0/24,A2&#xff…

【Vue2+3入门到实战】(16)VUEVue路由的重定向、404、编程式导航、path路径跳转传参 详细代码示例

目录 一、Vue路由-重定向1.问题2.解决方案3.语法4.代码演示 二、Vue路由-4041.作用2.位置3.语法4.代码示例 三、Vue路由-模式设置1.问题2.语法 四、编程式导航-两种路由跳转方式1.问题2.方案3.语法4.path路径跳转语法5.代码演示 path跳转方式6.name命名路由跳转7.代码演示通过n…

C++day4作业

定义一个Person类,私有成员int age,string &name,定义一个Stu类,包含私有成员double *score,写出两个类的构造函数、析构函数、拷贝构造和拷贝赋值函数,完成对Person的运算符重载(算术运算符、条件运算…

利用idea+ jclasslib插件查看和分析 Java 类文件的字节码

jclasslib介绍 jclasslib 插件是一个用于 IntelliJ IDEA 的工具,它允许开发者在集成开发环境(IDE)内直接查看和分析 Java 类文件的字节码。这个插件尤其对于想要深入了解 Java 字节码、类加载机制、以及 Java 虚拟机(JVM&#xf…

第4课 FFmpeg读取本地mp4文件并显示

在上节课,我们使用FFmpeg实现了一个最简单的rtmp播放器,它看起来工作正常。这节课,我们尝试让它来播放本地的mp4文件试试。 1.将原rtmp地址修改为本地mp4地址: const char *inFileName "d:\\mp4\\dtz.mp4"; 调试运…

阿里后端实习二面

阿里后端实习二面 记录面试题目,希望可以帮助到大家 类加载的流程? 类加载分为三个部分:加载、连接、初始化 加载 类的加载主要的职责为将.class文件的二进制字节流读入内存(JDK1.7及之前为JVM内存,JDK1.8及之后为本地内存)&…

GO学习记录 —— 创建一个GO项目

文章目录 前言一、项目介绍二、目录介绍三、创建过程1.引入Gin框架、创建main2.加载配置文件3.连接MySQL、redis4.创建结构体5.错误处理、返回响应处理 前言 代码地址 下载地址:https://github.com/Lee-ZiMu/Golang-Init.git 一、项目介绍 1、使用Gin框架来创建项…

[Angular] 笔记 21:@ViewChild

chatgpt: 在 Angular 中,ViewChild 是一个装饰器,用于在组件类中获取对模板中子元素、指令或组件的引用。它允许你在组件类中访问模板中的特定元素,以便可以直接操作或与其交互。 例如,如果你在模板中有一个子组件或一个具有本地…

【shell】命令行自动补全(compgen、complete、compopt)

目录 用途 小例子 说明 进阶-多级补齐 Bash自动补齐原理 用途 自编写的Shell脚本/命令,很多时候都需要输入一定的参数。当参数较多而且较复制的时候,如果能使用Tab键补全就显得非常的便利。 小例子 例如,我们自定义一个命令 footest function…

使用flutter开发windows桌面软件读取ACR22U设备的nfc卡片id,5分钟搞定demo

最近有个需求,要使用acr122u读卡器插入电脑usb口,然后读取nfc卡片的id,并和用户账号绑定,调研了很多方式,之前使用rust实现过一次,还有go实现过一次,然后使用electron的时候遇到安装pcsc-lite失…

ORACLE P6 v23.12 最新虚拟机(VM)全套系统环境分享

引言 根据上周的计划,我简单制作了两套基于ORACLE Primavera P6 最新发布的23.12版本预构建了虚拟机环境,里面包含了全套P6 最新版应用服务 此虚拟机仅用于演示、培训和测试目的。如您在生产环境中使用此虚拟机,请先与Oracle Primavera销售代…

python常见报错信息!错误和异常!附带处理方法

作为 Python 初学者,在刚学习 Python 编程时,经常会看到一些报错信息。 Python 有两种错误很容易辨认:语法错误和异常。 Python assert(断言)用于判断一个表达式,在表达式条件为 false 的时候触发异常。 …

【UE5蓝图】读取本地json文件修改窗口大小

效果 插件 蓝图 1.判断文件存在 2.1文件不存在,生成文件 {"ResolutionX":540, "ResolutionY":960} 2.2文件存在,直接读取 3.设置窗口大小 遇到的坑 1.分辨率太大,导致效果不理想,建议先往小填写。 2.选对…

QT 利用开源7z 实现解压各种压缩包,包括进度条和文件名的显示(zip,7z,rar,iso等50多种格式)

想做一个winRAR一样的解压软件吗?很简单,利用开源的7z库就能实现。我看网上其他人说的方法不敢苟同,误人子弟。以前自己在项目中使用过7z,这次又有需要,就想记录下来。如果你研究过如何用7z的话,一定知道7z的每一个GUID都代表了一种格式,50多种GUID也就有50多个格式,最…

Unity坦克大战开发全流程——开始场景——音效数据逻辑

开始场景——音效数据逻辑 从这里开始到后面的三小节我们都将干一件很重要的事——数据存储,只有实现了数据存储才能在再次进入游戏时保持游戏数据不被丢失。 类图分析:数据管理类是一个大类,它其中关联了两个类(这两个类都是数据…

迭代归并:归并排序非递归实现解析

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《数据结构&算法》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 📋 前言 归并排序的思想上我们已经全部介绍完了,但是同时也面临和快速排序一样的问题那就是递…

Go语言中的性能考虑和优化

优化您的Go代码以达到最佳性能 性能优化是软件开发的关键方面,无论您使用哪种编程语言。在这篇文章中,我们将探讨Go语言中的性能考虑和优化,Go是一种以其效率而著称的静态类型和编译语言。我们将深入探讨三个关键领域:分析并发代…

用CSS中的动画效果做一个转动的表

<!DOCTYPE html> <html lang"en"><head><meta charset"utf-8"><title></title><style>*{margin:0;padding:0;} /*制作表的样式*/.clock{width: 500px;height: 500px;margin:0 auto;margin-top:100px;border-rad…