Files
obsidian-vault/06 平台与配置/2025.12 重新在docker部署安装halo.md
2026-06-23 00:24:32 +08:00

117 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: 2025.12 重新在docker部署安装halo
slug: 2025.12-chong-xin-zai-dockerbu-shu-an-zhuang-halo
cover: ""
categories: []
tags: []
halo:
site: http://www.xybkwd.top
name: ef1a2d4b-3cd8-4d95-ac58-5c705ba636a0
publish: false
创建时间: 2026-01-07T17:32
更新时间: 2026-01-07T17:32
---
#软件配置 #博客 #halo #docker #云服务器
2026.1.7更新2.22.7时补充:
```bash
cd /
cd opt
cd halo
root@VM-4-13-ubuntu:/opt/halo# docker-compose down
Removing b0d24497f8e0_halo ... done
Removing network halo_default
root@VM-4-13-ubuntu:/opt/halo# docker-compose pull
Pulling halo ... done
root@VM-4-13-ubuntu:/opt/halo# docker-compose up -d
halo is up-to-date
# 之后等待就可以重新登录halo博客
# 从登录云服务器开始,到更新完成的整个操作过程操作记录如上
# 在操作之前我已在博客后台进行备份,更新完成后数据还在因此没有使用恢复
# 但是建议以后得操作还是要进行备份
```
---
2025.12 首次更新博客
本次更新halo时发现上次重新部署halo时并没有采用docker-compose方式部署而是直接采用docker run进行部署的因此导致本次试图更新的时候找不到`docker-compose.yml`文件,因此也就没有使用一键更新的方式。
---
### 一、本次问题起源
此前因信息安全的原因进行过halo的重新部署本想着这次应该轻车熟路但是因为上次最后不是使用docker-compose进行安装的因此没有办法使用一键安装。
首先我经历了较为长久的确定安装方式的研究最终确定我是使用docker run部署的。
在这种情况下,只得采用**博客备份、docker部署的halo删除、建立docker-compose.yml的方式重新部署。**
### 二、本次的操作:
一是创建`docker-compose.yml`文件
本次把文件放在了以下的路径中,并不是容器在这里。
```bash
sudo mkdir -p /opt/halo
cd /opt/halo
```
二是使用`nano`将下面的内容粘贴近yml文件中
```yml
version: "3.8"
services:
halo:
image: halohub/halo:2.21.10 # 建议指定一个已知稳定的版本号,而非 latest
container_name: halo
restart: unless-stopped # 除非手动停止,否则总是重启
volumes:
# 【关键】将你现有的 Halo 数据目录挂载到容器内
# 左边 /root/.halo 替换为你通过 `docker inspect halo` 查到的真实数据目录
- /root/.halo:/root/.halo2
ports:
- "8090:8090" # 保持与你当前映射的端口一致
# 外部访问地址,请根据你最终希望通过哪个域名访问来修改
# 例如:--halo.external-url=https://blog.yourdomain.com
command:
- --halo.external-url=http://localhost:8090/
```
三是停止并删除原来的halo docker按照yml的配置重新拉取并部署
```bash
docker stop halo
docker rm halo
docker-compose up -d
```
四是运行`docker-compose ps``docker ps`,查看 `halo`容器的状态是否为 "Up"。
---
以后再更新时,使用以下命令即可。
**每次更新,都必须要进行备份**
```bash
docker-compose pull
# 1. 拉取新版本的镜像如果yml文件中的镜像版本号已修改此命令会下载新镜像
docker-compose up -d
# 2. 使用新镜像重新创建并启动容器
```
目前还有一个疑点,但是不是很重要
即yml文件中的挂载地址和容器中的好像有一点差异导致本次利用docker-compose安装时数据都丢失了。
为什么说不重要呢?
因为不管怎么更新,我的博客数据是一定要备份的
因此,这个挂载不重要。
但是目前处于一种不确定,但是不太敢折腾的状态
等到下次版本的更新时看一下
一键更新后时无缝衔接呢,还是又被重新初始化了?
我个人猜测应该不会被初始化了
[[【索引】Halo博客搭建过程记录]]