文章目录
如何快速搭建一个自己的博客系统
- 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
鸣谢
- 非常感谢你从头到尾阅读了这篇文章,希望其中的内容对你有所启发和帮助。如果你还有其他问题或需要进一步的了解,欢迎随时关注我的动态并留言
- 最后可以给作者点个关注和小赞赞嘛,谢谢!
- 觉得有收藏价值可以进行收藏