Docker项目之搭建私人的Halo博客
Halo,强大易用的开源建站工具。开源在GitHub上,目前最新版本2.4.1。其易于部署,可通过docker或docker-Compose,以及1Panel面板等方式进行安装。当然其插件及主题仍以1.4版本为主,基于2.0版本的插件及主题虽少于1.4版本,但已经可以带来了良好的体验及便捷,相信在后续的开发中,本体将更加稳定,功能更加完善实用,插件及主题等配套会日益丰富。
通过docker-Compose进行网站的搭建
进入Halo的安装目录(可以自定义安装目录)
cd /root/data/docker_data/halo
vi docker-compose.yml
添加以下内容
version: "3"
services:
halo:
# 2.4.1为版本号,升级时可以改版本号,或者写成latest,这样会直接下最新的,建议写版本号的形式,这样更新时,能保证选择稳定的版本。
image: halohub/halo:2.4.1
container_name: halo
restart: on-failure:3
depends_on:
halodb:
condition: service_healthy
networks:
halo_network:
volumes:
# ./是当前目录,冒号后是映射的docker内halo路径
- ./:/root/.halo2
ports:
# 前面的8090是本系统的8090,后面的是docker内端口,做的映射
- "8090:8090"
command:
- --spring.r2dbc.url=r2dbc:pool:mysql://halodb:3306/halo
- --spring.r2dbc.username=root
# MySQL 的密码,请保证与下方 MYSQL_ROOT_PASSWORD 的变量值一致。
- --spring.r2dbc.password=o#DwN&JSa56
- --spring.sql.init.platform=mysql
# 外部访问地址,请根据实际需要修改
- --halo.external-url=http://localhost:8090/
# 初始化的超级管理员用户名
- --halo.security.initializer.superadminusername=admin
# 初始化的超级管理员密码
- --halo.security.initializer.superadminpassword=P@88w0rd
halodb:
image: mysql:8.0.31
container_name: halodb
restart: on-failure:3
networks:
halo_network:
command:
- --default-authentication-plugin=mysql_native_password
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_general_ci
- --explicit_defaults_for_timestamp=true
volumes:
- ./mysql:/var/lib/mysql
- ./mysqlBackup:/data/mysqlBackup
ports:
#此处为docker内的端口号,并未设置系统的端口号对其进行映射,也并没有需求需要外网访问此docker端口
- "3306"
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "--silent"]
interval: 3s
retries: 5
start_period: 30s
environment:
# 请修改此密码,并对应修改上方 Halo 服务的 SPRING_R2DBC_PASSWORD 变量值
- MYSQL_ROOT_PASSWORD=o#DwN&JSa56
- MYSQL_DATABASE=halo
networks:
halo_network:
查看端口是否被占用
lsof -i:8090
lsof -i:3060
开放防火墙端口
firewall-cmd –add-port=8090/tcp –permanent
firewall-cmd –reload
只放开8090端口,此为外界访问的端口,3060不用开放是docker与服务器之间数据库通信端口。
开始安装
cd /root/data/docker_data/halo
docker-compose up -d
安装完成后可以通过
docker ps
查看容器是否运行,如果已经运行了,可以通过在浏览器输入ip:8090
进行访问。
cd /root/data/docker_data/halo
docker-compose down
cp -r /root/data/docker_data/halo /root/data/docker_data/halo.archive # 万事先备份,以防万一
- 修改docker-compose.yml
vi docker-compose.yml
修改image: halohub/halo:
image: halohub/halo:2.4.1 #当前版本为2.4.1,根据要升级成的版本改变这个版本号,保存退出
- 开始拉取镜像,安装
docker-compose pull
docker-compose up -d # 请不要使用 docker-compose stop 来停止容器,因为这么做需要额外的时间等待容器停止;docker-compose up -d 直接升级容器时会自动停止并立刻重建新的容器,完全没有必要浪费那些时间。
docker image prune # prune 命令用来删除不再使用的 docker 对象。删除所有未被 tag 标记和未被容器使用的镜像
cd /root/data/docker_data/halo
docker-compose down
cd ..
rm -rf /root/data/docker_data/halo # 完全删除映射到本地的数据
以上完成了halo的博客的搭建,至于域名及https未涉及。
现在在使用的blog是根据咕咕鸽文章搭建的,此篇文章也是根据咕咕鸽的文章进行适当修改的,在此感谢咕咕鸽。