原先都是在虚拟机安装 Linux 系统,然后在安装 docker 部署 halo,后来觉得既然有 WSL,就不用再通过虚拟机部署了,直接本地部署完事了。

一、环境配置

1、一台个人电脑,最好是最新的系统。

2、微软商店安装 Windows Subsystem for Linux Debian

3、或者在微软官方文档查看文档用命令安装 官方文档

4、安装完成打开Debian,如果报错无法解析服务器的名称或地址,参考 此文章 修改 DNS 或者 hosts 文件都可,修改 DNS 基本可以解决问题。

5、按软件提示设定用户名,设置密码。

二、安装 Docker(此步骤实测无用,留作记录)

1、更新系统

  • 进入 root 账户,输入刚才设置密码。
1
sudo -i
  • 更新系统
1
2
3
apt update
apt list --upgradable
apt upgrade -y
  • 安装 wget 和 vim 编辑器
1
apt install wget
1
apt install vim

2、安装 Docker

根据官方文档操作即可。

  • 卸载旧版本
1
for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done
  • 设置 apt 存储库

1、更新软件包索引并安装软件包以允许使用 基于 HTTPS 的存储库

1
2
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg

2、添加 Docker 的官方 GPG 密钥

1
2
3
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

3、使用以下命令设置存储库

1
2
3
4
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  • 安装 Docker 引擎

1、更新包索引

1
sudo apt-get update

2、安装 Docker Engine、containerd 和 Docker Compose。

1
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

3、测试是否安装成功,不过不报错就是已经成功了,不用再去拉去测试镜像了。

三、部署 Halo

1、创建工作目录

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

2、下载示例配置文件到工作目录

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

**子系统很精简,很多程序都没有,所以前面要提前安装wget和vim,否则此时会报错。

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

1
vim application.yaml

**本地测试运行,不需要修改配置文件默认即可。

4、拉取最新的 Halo 镜像

1
docker pull halohub/halo:1.6.0

如果一切按照前面步骤来,此时会报错:System has not been booted with systemd as init system (PID 1). Can’t operate. Failed to connect to bus: Host is down.
网上搜索报错内容,找到这个网页,查看里面的回答还是系统精简问题。
最后找到微软文档,按里面所说只需要安装好Docker Desktop并设置完成即可。

四、安装 Docker Desktop

  • 官网下载完成安装即可,安装完成需要重启电脑。

  • 重启完成,按前面微软文档对软件进行设置。

1、回到正轨

现在再运行拉取命令就可以进行正常拉取了。

1
docker pull halohub/halo:1.6.1

2、创建容器

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

3、初始化

现在打开 Docker Desktop 就可以看到刚才拉取的镜像和创建的容器都在软件里面显示,点击容器里面的 ports 即可打开网页初始化博客了。

安装了 Docker Desktop 之后就可以通过 wsl 正常创建容器了,前面的安装 Docker 的步骤就多余了。
注意,关机前,应先停止 Docker 容器,否则已部署的容器数据会丢失,需要重新部署。