docker快速部署halo个人博客

简介

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
docker官网

halo一款现代化的博客/CMS系统,开源的代码下载,完善的社区支持。
halo官网

安装docker

1.使用yum快速安装docker

yum install -y docker

2.开启docker服务

systemctl start docker.service

3.查看安装结果

docker version

docker快速部署halo个人博客_第1张图片

4.设置开机启动

 systemctl enable docker.service

5.配置docker镜像下载加速

默认下的docker下载配置拉镜像速度很慢,可以配置为国内的镜像仓库地址,提高拉取速度。

直接编辑配置文件

vim /etc/docker/daemon.json

可以使用网易、阿里的仓库
比如使用阿里的仓库。

1.打开阿里云控制台,搜索“容器镜像加速”并开通

docker快速部署halo个人博客_第2张图片

2.进去容器镜像加速服务,点击“镜像工具”下的“镜像加速器”右边即可看到加速地址

docker快速部署halo个人博客_第3张图片

3.将加速地址复制,需要自己去开通加速器,每个人的不一样(免费)

将加速地址编辑到daemon.json保存即可

vim /etc/docker/daemon.json

编辑加速地址进去

{
  "registry-mirrors": ["加速地址"]
}

加完加速地址后,重新加载配置文件,重启 docker 服务即可:

 systemctl daemon-reload
 systemctl restart docker.service

安装halo博客

可以参考halo官方文档,也可以按照我的教程!

1.创建工作目录(工作目录很重要)

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

2.下载配置文件到工作目录

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

如果报找不到命令,就

yum install wget

3.编辑配置文件(application.yaml),配置数据库或者端口等,如需配置请参考参考配置

vim application.yaml

docker快速部署halo个人博客_第4张图片
关于配置文件可以修改一些端口等配置,主要说说下数据源的配置和选择
halo目前支持两种数据库h2和mysql,默认部署时启用的是h2数据库,参见上面文件的配置
如果需要更换数据库为mysql,需要将配置文件的mysql注释取消添加好自己的mysql配置后,再讲h2的配置注释掉。
那么,如何到底如何选择数据库呢?
根据官方文档一些给出一些建议参考
关于h2和mysql的优缺点:

使用 H2 的优劣:

优点:

能更快的完成 Halo 的搭建。
无需单独安装 H2,数据库随着 Halo 的启动而创建。
比 MySQL 更节省资源占用,尤其是你的服务器配置不佳的情况下。
性能方面与 MySQL 基本无异(对于这种小型应用),实测 1000 篇文章的情况下,毫无压力。
不会因为某个配置不对而导致 Halo 无法正常使用,没有乱七八糟的问题。
更符合 Halo 数据架构的特点,所有数据(数据库物理文件,主题文件,上传的附件,日志等)均放在 ~/.halo 文件夹内,所以备份迁移极其方便。
如上所述,目前所有备份相关的功能均针对 H2。MySQL 的备份暂无计划。

缺点:

管理不方便,虽然有在线的控制台,但是并不好用。

使用 MySQL 的优劣:

优点:

管理方便,你可以开启远程连接,在自己电脑即可管理数据库。不过目前halo已经做了一些 开发者功能,似乎也没必要怎么管理。

缺点(仅针对于 Halo):

部署麻烦,还需要单独跑一个 MySQL,不能做到 Halo 开箱即用。
占用内存,尤其是你服务器内存不够的情况下,宛如雪上加霜。当然,服务器强壮的话可无视。
版本太多,当你安装了一个 Halo 不支持的版本(目前支持 5.7+)的时候,可能会无法正常使用,甚至无法正常启动。
配置繁琐,你可能需要配置如字符集这样的东西,对新手来说极不友好。(字符集 utf8mb4 collate utf8mb4_bin)
备份迁移麻烦,你不但需要备份 ~/.halo,还需要导出数据库脚本。
目前暂不支持后台备份 MySQL 数据。(重要)

4.拉取最新的 Halo 镜像

docker pull halohub/halo:1.4.12

5.创建容器

docker run -it -d --name halo -p 8090:8090 -v ~/.halo:/root/.halo --restart=unless-stopped halohub/halo:1.4.12

-it: 开启输入功能并连接伪终端
-d: 后台运行容器
–name: 为容器指定一个名称
-p: 端口映射,格式为 主机(宿主)端口:容器端口 ,可在 application.yaml 配置。
-v: 工作目录映射。形式为:-v 宿主机路径:/root/.halo,后者不能修改。
–restart: 建议设置为 unless-stopped,在 Docker 启动的时候自动启动 Halo 容器。

6.halo安装完成

打开 http://ip:端口号 即可看到安装引导界面
完成引导安装,可以在控制台更改设置,添加主题等。

访问

你的http://ip:8090/ 博客首页
你的http://ip:8090/admin 博客控制台页面

8090为部署时默认端口。

展示

你可能感兴趣的:(docker,运维,linux)