docker compose halo快速搭建博客系统

文章目录

  • 如何快速搭建一个自己的博客系统
    • docker halo 部署
      • docker 卸载(安装过可跳过docker安装或者卸载重装)
      • 设置docker国内镜像(方便快速拉取镜像启动项目)
      • 安装相关依赖
      • 安装docker
      • 启动docker
      • 设置docker开机自启
      • 关于docker日志文件处理
      • docker启动halo项目
    • docker compose halo部署
      • docker-compose 安装
      • 修改权限
      • 查看版本
      • docker-compose.yaml
      • 启动相关指令(以下指令必须在docker-compose.yaml同级目录执行)
  • 鸣谢

如何快速搭建一个自己的博客系统

  • docker halo 部署
  • docker compose halo部署

docker halo 部署

相关资料

@see https://zhuanlan.zhihu.com/p/504248808 @see
@see https://docs.halo.run/getting-started/install/docker-compose

docker 卸载(安装过可跳过docker安装或者卸载重装)

yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine \
                  docker-ce

设置docker国内镜像(方便快速拉取镜像启动项目)

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装相关依赖

sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2

安装docker

 sudo yum install docker-ce docker-ce-cli containerd.io

启动docker

sudo systemctl start docker

设置docker开机自启

systemctl enable docker.service

关于docker日志文件处理

脚本清空(针对已经启动的所有docke容器日志文件)

#vim docker-clear.sh
内容如下:
#!/bin/sh 
  
echo "======== start clean docker containers logs ========"  
 
logs=$(find /var/lib/docker/containers/ -name *-json.log)  
  
for log in $logs  
        do  
                echo "clean logs : $log"  
                cat /dev/null > $log  
        done  

echo "======== end clean docker containers logs ========"  

#设置权限并执行
# chmod +x docker-clear.sh

# ./docker-clear.sh

启动初始化(针对未启动的容器设置默认日志文件大小)

nginx: 
  image: nginx:1.12.1 
  restart: always 
  logging: 
    driver: “json-file” 
    options: 
      max-size: “5g” 

全局设置(针对所有启动和未启动的日志文件大小)

vim /etc/docker/daemon.json //改设置不会删除容器

{
  "registry-mirrors": ["http://f613ce8f.m.daocloud.io"],
  "log-driver":"json-file",
  "log-opts": {"max-size":"500m", "max-file":"3"}
}
// 重启docker守护进程

# systemctl daemon-reload

# systemctl restart docker

docker启动halo项目

docker pull halohub/halo:2.2.0
docker run \
  -it -d \
  --name halo \
  -p 8090:8090 \
  -v ~/.halo2:/root/.halo2 \
  halohub/halo:2.2.0 \
  --halo.external-url=http://ip:8080/ \
  --halo.security.initializer.superadminuser=admin \
  --halo.security.initializer.superadminpassword=P@88w0rd \

docker compose halo部署

docker-compose 安装

curl -L https://get.daocloud.io/docker/compose/releases/download/v2.3.3/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

修改权限

sudo chmod +x /usr/local/bin/docker-compose

查看版本

docker-compose -v
cd ~/halo
touch docker-compose.yaml

docker-compose.yaml

version: "3"

services:
  halo:
    image: halohub/halo:2.2.0
    container_name: halo
    restart: on-failure:3
    depends_on:
      halodb:
        condition: service_healthy
    networks:
      halo_network:
    volumes:
      - ./:/root/.halo2
    ports:
      - "8080:8080"
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8080/actuator/health/readiness"]
      interval: 30s
      timeout: 5s
      retries: 5
      start_period: 30s          
    command:
      - --spring.r2dbc.url=r2dbc:pool:mysql://halodb:port/dbname
      - --spring.r2dbc.username=root
      # MySQL 的密码,请保证与下方 MYSQL_ROOT_PASSWORD 的变量值一致。
      - --spring.r2dbc.password=password
      - --spring.sql.init.platform=mysql
      # 外部访问地址,请根据实际需要修改
      - --halo.external-url=http://localhost:8080/
      # 初始化的超级管理员用户名
      - --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:
      - "3306: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=password
      - MYSQL_DATABASE=halo
networks:
  halo_network:

启动相关指令(以下指令必须在docker-compose.yaml同级目录执行)

docker-compose up -d //自动拉取halo和mysql镜像并执行halo容器构建及项目启动
docker-compose logs -f  //查看启动日志
docker-compose down  //关闭并删除容器
cp -r ~/halo ~/halo.archive  //备份数据
//项目更换版本
1、修改配置文件halo版本
2、docker-compose down
3、docker-compose up -d

鸣谢

  • 非常感谢你从头到尾阅读了这篇文章,希望其中的内容对你有所启发和帮助。如果你还有其他问题或需要进一步的了解,欢迎随时关注我的动态并留言
  • 最后可以给作者点个关注和小赞赞嘛,谢谢!
  • 觉得有收藏价值可以进行收藏

你可能感兴趣的:(docker,docker-compose,halo)