系统版本选择

debian10遇到问题情况较小 其次为Ubuntu18
最后选择centos7.9

安装docker

官方安装地址

https://docs.docker.com/engine/install/debian/

文章内容引用

https://blog.laoda.de/archives/docker-install-halo

安装halo博客系统

创建工作目录

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

下载配置文件到工作目录

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

推送镜像

docker pull halohub/halo:1.6.0

创建容器

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

注意

此命令默认使用自带的 H2 Database 数据库。如需使用 MySQL,请参考:使用 Docker 部署 Halo 和 MySQL

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

安装lsof

apt install lsof 

更新

先停止容器

docker stop halo

删除容器

docker rm -f halo

备份数据

cp -r ~/.halo ~/.halo.archive

清楚缓存

rm -rf ~/.halo/.leveldb

拉去最新镜像

docker pull halohub/halo:latest

查看最新版本镜像:https://hub.docker.com/r/halohub/halo ,我们推荐使用具体版本号的镜像,但也提供了 latest 标签的镜像,它始终是最新的。
创建

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

卸载

sudo -i  # 切换到root

docker stop halo

docker rm -f halo

rm -rf ~/.halo     # 完全删除映射到本地的数据

配置Nginx反向代理实现域名访问

upstream halo {
  server 127.0.0.1:8090;
}
server {
  listen 80;
  listen [::]:80;
  server_name www.yourdomain.com;
  client_max_body_size 1024m;
  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;
  }
}

或者

                   location / {
   proxy_pass http://127.0.0.1:8090/;
   rewrite ^/(.*)$ /$1 break;
   proxy_redirect off;
   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;
   proxy_set_header Upgrade-Insecure-Requests 1;
   proxy_set_header X-Forwarded-Proto https;
  }

帮助或者参考资料

https://github.com/halo-dev/halo/issues

https://docs.halo.run/

https://halo.run/

https://bbs.halo.run/