
【halo搭建】腾讯云,阿里云服务器上安装docker搭建halo框架
大家好,我是铭kk
本次搭建halo框架静态博客,halo框架的静态博客是目前我的博客网站使用的博客框架,一款现代化的博客/cms系统,采用了程序与用户配置分离的方式,迁移和备份成本大大降低。您只需要一条命令即可运行成功,配套相应的主题非常的漂亮,有兴趣的可以去看看我自己博客样式。
halo博客有两种搭建方式,第一种直接在服务器搭建。第二种就是今天要讲的服务器上安装docker上部署。
那有小伙伴问了,那为啥还要安装docker搭建直接服务器上不香吗?
那就要从docker说起,什么是docker?
百度是这样说的,Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows 机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。
简单的来说,docker可以实现虚拟化类似vm虚拟机 ,沙箱功能,可以让我们博客独立起来更好控制不受服务器上其他影响,相当于一个独立空间。我们完全可以利用docker实现一行命令短时间再搭建一个halo博客。
小伙伴很好奇那么什么命令呢?不急看完本文你就知道了
搭建前的准备
个人使用的环境, 需要一个本地环境:Windows10(64位)电脑一台, 云主机:阿里云ECS(CentOS 8 64位),这里不一定跟我系统一样也能搭建成功,还要装好宝塔面板,宝塔面板不会搭建点击下方进入
教你如何在阿里云服务器上搭建部署hexo静态博客+shoka主题
搭建开始
1.docker安装
在新主机上首次安装Docker Engine之前,需要设置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
sudo systemctl start docker
通过运行hello-world 映像来验证是否正确安装了Docker Engine 。
sudo docker run hello-world
出现hello字样说明安装成功了
2.使用 Docker 部署 Halo
创建工作目录
mkdir ~/.halo && cd ~/.halo
下载示例配置文件到工作目录
wget https://dl.halo.run/config/application-template.yaml -O ./application.yaml
3.编辑配置文件,配置数据库或者端口(8090)
vim application.yaml
拉取最新的 Halo 镜像
docker pull halohub/halo
创建容器
docker run -it -d --name halo -p 8090:8090 -v ~/.halo:/root/.halo --restart=always halohub/halo
-it: 开启输入功能并连接伪终端
-d: 后台运行容器
–name: 为容器指定一个名称
-p: 端口映射,格式为 主机(宿主)端口:容器端口 ,可在 application.yaml 配置。
-v: 工作目录映射。形式为:-v 宿主机路径:/root/.halo,后者不能修改。
–restart: 建议设置为 always,在 Docker 启动的时候自动启动 Halo 容器。
打开 http://ip:端口号 即可看到安装引导界面。
域名解析
在你的服务器上将域名解析
如果用ip访问在安全组开放8090端口
宝塔面板绑定反向代理
同样的在宝塔面板放行8090端口
在左侧菜单栏中选择软件商店->搜索nginx->选择快速安装->等待安装完毕,如果已安装就不用管。
设置ssl证书
可选择 宝塔 SSL 或者 Let's Encrypt 进行证书申请。
接着点击网站-添加站点-输入域名(没有域名的输入自己的IP地址)-底部的PHP版本选择”纯静态”(其他不改 或者根据自己的习惯来改)-提交。网站创建完成后点击设置-配置文件。
在根节点添加完整配置文件保存即可:
upstream halo {
server 127.0.0.1:8090;
}
server
{
...
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
proxy_pass http://halo;
expires 30d;
error_log /dev/null;
access_log off;
}
location ~ .*\.(js|css)?$
{
proxy_pass http://halo;
expires 12h;
error_log /dev/null;
access_log off;
}
location / {
proxy_pass http://halo;
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;
}
...
}
最后,访问域名即可进行 Halo 的初始化。
3.一条命令实现多个halo博客
首先我们创建两个文件夹用来放第二个博客
midir halo
cd halo
midir hello
发大招(一条命令)
docker run -it -d --name halo2 -p 8091:8090 -v ~/halo/hello:/root/.halo --restart=always halohub/halo
至此第二个博客也搭建成功了 这里注意修改name 端口 和 文件地址就行.
最后设置一下docker服务自启动
方便docker管理不然服务器关闭以后docker没人启动
systemctl enable docker.service
docker容器自动启动设置
docker ps -a
4.主题的设置
这个在halo后端找到自己喜欢主题应用即可 我就不啰嗦了。
docker 过一段时间就会关闭,请问怎么解决
设置docker自启动试试
ok