使用Docker快速部署Halo-快速建站指南
VPS
推荐使用Debian 10 或者 Ubuntu 20.04或更高版本我当前的博客就是用Halo搭建在Ubuntu 20.04的VPS上的
官方介绍:
Halo 作为一款好用又强大的开源建站工具,配合上不同的模板与插件,可以很好地帮助你构建你心中的理想站点。它可以是你公司的官方网站,可以是你的个人博客,也可以是团队共享的知识库,甚至可以是一个论坛、一个商城。详细说明和安装方法可参考官方文档。
下面是我创建的博客的截图,怎么样,UI界面是不是很好看呢?欢迎大家前去参观博客地址:https://sgexe.top/
1.创建工作目录
mkdir ~/.halo && cd ~/.halo
2.下载示例配置文件到 工作目录
wget https://dl.halo.run/config/application-template.yaml -O ./application.yaml
3.使用 Docker 部署 Halo
拉取最新的 Halo 镜像
docker pull halohub/halo:1.5.4
推荐使用具体版本号的镜像,如果用 latest 标签的镜像,它始终是最新的。一些1.0+版本的精美主题对2.0+的版本还不支持,我这里为了用一个自己喜欢的主题所以使用的是1.5.4
docker run -it -d --name halo -p 8090:8090 -v ~/.halo:/root/.halo --restart=unless-stopped halohub/halo:1.5.4
注意:此命令默认使用自带的 H2 Database 数据库。如需使用 MySQL,请参考官方文档
-it
: 开启输入功能并连接伪终端
-d
: 后台运行容器
–name
: 为容器指定一个名称
-p
: 端口映射,格式为 主机(宿主)端口:容器端口 ,可在 application.yaml 配置。
-v
: 工作目录映射。形式为:-v 宿主机路径:/root/.halo,后者不能修改。
–restart
: 建议设置为 unless-stopped,在 Docker 启动的时候自动启动 Halo 容器。
注意:
如果要修改冒号左边端口,需要先查看端口是否被占用(以 8090 为例):
先下载工具,一般是默认有这个工具的
apt install lsof #安装 lsof
查看8090 端口是否被占用,如果被占用,重新自定义一个端口
lsof -i:8090
4.安装成功
理论上我们就可以输入http://IP:8090
访问了,比如:192.3.12.333:8090
。默认先进行超级管理员的创建并登陆Halo后台,这样建站工作就算是完成了。
5.更新 Halo
先停止容器,这一步所有都一样,注意你容器的名字,不知道名字可以docker ps
显示所有当前所有容器列表,在NAME
列找到对应名字。然后再利用Nginx Proxy Manger反向代理神器进行反向代理之后就可以直接用域名进行访问了。
docker stop halo
删除容器,这一步所有都一样,注意你容器的名字
docker rm -f halo
备份数据(非常非常非常重要)这一步所有都一样,注意你挂载出来的路径地址
cp -r ~/.halo ~/.halo.archive
下面这一步是halo特有的
rm -rf ~/.halo/.leveldb
拉取最新的镜像,一般的话你知道特定的版本号就直接写即可,比如这边的1.5.4,如果不知道版本号,可以直接写latest,即 docker pull halohub/halo:latest
,会下载最新版2.0+
docker pull halohub/halo:1.5.4
重新运行容器 注意和搭建时候唯一不同的就是最后面的版本号不同,如果你是latest 那就把1.5.4改成latest
docker run -it -d --name halo -p 8090:8090 -v ~/.halo:/root/.halo --restart=unless-stopped halohub/halo:1.5.4
删除掉旧的镜像
docker image prune
6.在VPS之间迁移Halo数据
确保在根目录
cd ~
备份数据
cp -r ~/.halo ~/.halo.archive
压缩备份文件,tar -czvf 压缩后文件名 备份文件名
tar -czvf .halo.tar.gz .halo.archive
发送给新服务器的格式为scp -P 端口 -r /root/backup/backup.tar 新服务器的用户名@新服务器的IP:/root/data/docker_data/
scp -P 22 -r .halo.tar.gz [email protected]:/root
上面如果没成功的话把这个压缩包下载到本地电脑然后在传给新服务器也是可以的
然后在新服务器上解压缩
tar -zxvf .halo.tar.gz
把.halo.archive重命名成.halo
mv .halo.archive .halo
然后就和更新Halo一样的步骤
rm -rf ~/.halo/.leveldb
拉取最新的镜像,一般的话你知道特定的版本号就直接写即可,比如这边的1.5.4,如果不知道版本号,可以直接写latest,即 docker pull halohub/halo:latest
,会下载最新版2.0+,我为了能够使用当前的主题所以使用的1.5.4版本
docker pull halohub/halo:1.5.4
重新运行容器 注意和搭建时候唯一不同的就是最后面的版本号不同,如果你是latest 那就把1.5.4改成latest
docker run -it -d --name halo -p 8090:8090 -v ~/.halo:/root/.halo --restart=unless-stopped halohub/halo:1.5.4
7.卸载 Halo
停止容器
docker stop halo
删除容器,此时不会删除映射到本地的数据
docker rm -f halo
完全删除映射到本地的数据
rm -rf ~/.halo
最后,如果想了解更多内容请前往我的个人博客了解更多内容畅所欲言哦!