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

一、环境配置

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

2、微软商店安装 Windows Subsystem for LinuxDebian 非常容易失败,按第三步走。

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

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

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

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

2.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.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

3.1、创建工作目录

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

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

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

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

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

1
vim application.yaml

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

3.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

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

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

4.1、回到正轨

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

1
docker pull halohub/halo:1.6.1

4.2、创建容器

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

4.3、初始化

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

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