117 lines
3.8 KiB
Markdown
117 lines
3.8 KiB
Markdown
---
|
||
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博客搭建过程记录]]
|