Docker项目之搭建私人的Halo博客

2 篇文章 0 订阅
1 篇文章 0 订阅

Docker项目之搭建私人的Halo博客

Halo,强大易用的开源建站工具。开源在GitHub上,目前最新版本2.4.1。其易于部署,可通过docker或docker-Compose,以及1Panel面板等方式进行安装。当然其插件及主题仍以1.4版本为主,基于2.0版本的插件及主题虽少于1.4版本,但已经可以带来了良好的体验及便捷,相信在后续的开发中,本体将更加稳定,功能更加完善实用,插件及主题等配套会日益丰富。

通过docker-Compose进行网站的搭建

  • 安装docker及docker-compose

请参考 Centos7安装Docker及Docker-compose

  • 部署Halo

进入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进行访问。

  • 升级Halo

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 标记和未被容器使用的镜像
  • 卸载Halo

cd /root/data/docker_data/halo
docker-compose down
cd ..
rm -rf /root/data/docker_data/halo  # 完全删除映射到本地的数据

以上完成了halo的博客的搭建,至于域名及https未涉及。
现在在使用的blog是根据咕咕鸽文章搭建的,此篇文章也是根据咕咕鸽的文章进行适当修改的,在此感谢咕咕鸽。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值