使用 docker 安裝 halo 博客#
1. 創建容器
docker run \
-it -d \
--name halo \
-p 8090:8090 \
-v ~/.halo2:/root/.halo2 \
halohub/halo:2.3.0 \
--halo.external-url=http://localhost:8090/ \
--halo.security.initializer.superadminusername=admin \
--halo.security.initializer.superadminpassword=P@88w0rd
注意:此命令默認使用自帶的 H2 Database 數據庫。如需使用 PostgreSQL,請參考:使用 Docker Compose 部署
- -it:開啟輸入功能並連接偽終端
- -d:後台運行容器
- --name:為容器指定一個名稱
- -p:端口映射,格式為
主機(宿主)端口:容器端口
,可在application.yaml
配置。 - -v:工作目錄映射。形式為:
-v 宿主機路徑:/root/.halo2
,後者不能修改。
補充一點:使用上面的命令之前需要把第 7 行的http://localhost:8090 / 修改為你機器的 ip 地址。如果像修改密碼的話,建議直接把密碼也改掉,至於管理員用戶名想改就改,不想改就算了。
變量詳解:
參數名 | 描述 |
---|---|
spring.r2dbc.url | 數據庫連接地址,詳細可查閱下方的 數據庫配置 |
spring.r2dbc.username | 數據庫用戶名 |
spring.r2dbc.password | 數據庫密碼 |
spring.sql.init.platform | 數據庫平台名稱,支持 postgresql 、mysql 、h2 ,需要與 SPRING_R2DBC_URL 對應 |
halo.external-url | 外部訪問鏈接,如果需要再公網訪問,需要配置為實際訪問地址 |
halo.security.initializer.superadminusername | 初始超級管理員用戶名 |
halo.security.initializer.superadminpassword | 初始超級管理員密碼 |
數據庫配置:
鏈接方式 | 鏈接地址格式 | SPRING_SQL_INIT_PLATFORM |
---|---|---|
PostgreSQL | r2dbc:pool:postgresql://{HOST}:{PORT}/{DATABASE} | postgresql |
MySQL | r2dbc:pool:mysql://{HOST}:{PORT}/{DATABASE} | mysql |
H2 Database | r2dbc:h2:file:///${halo.work-dir}/db/halo-next?MODE=MySQL&DB_CLOSE_ON_EXIT=FALSE | h2 |
2. 用瀏覽器訪問 $HALO_EXTERNAL_URL/console/
(外部訪問鏈接)即可進入 Halo 管理端。管理員用戶名為 admin
,登錄密碼為上方設置的 HALO_SECURITY_INITIALIZER_SUPERADMINPASSWORD
。
如果需要配置域名訪問,建議先配置好反向代理以及域名解析再進行初始化。如果通過 http://ip:端口號
的形式無法訪問,請到服務器廠商後台將運行的端口號添加到安全組,如果服務器使用了 Linux 面板,請檢查此 Linux 面板是否還有安全組配置,需要同樣將端口號添加到安全組。
升級版本#
-
拉取新版本鏡像
docker pull halohub/halo:2.3.0
-
停止運行中的容器
docker stop halo docker rm halo
-
備份數據(重要)
cp -r ~/.halo2 ~/halo2.archive
需要注意的是,
halo2.archive
文件名不一定要根據此文檔命名,這裡僅僅是個示例。 -
更新 Halo
修改版本號後,按照最初安裝的方式,重新創建容器即可。
docker run \ -it -d \ --name halo \ -p 8090:8090 \ -v ~/.halo2:/root/.halo2 \ halohub/halo:2.3.0 \ --halo.external-url=http://localhost:8090/ \ --halo.security.initializer.superadminusername=admin \ --halo.security.initializer.superadminpassword=P@88w0rd