Blog.L

Blog.L

使用 Docker 部署 Halo

28
2023-09-10
1、启动 MySQL 实例
docker run --name mysql -d -p 3306:3306 --restart unless-stopped -v /halo/mysql/log:/var/log/mysql -v /halo/mysql/data:/var/lib/mysql -v /halo/mysql/conf:/etc/mysql -v /halo/mysql/mysql-files:/var/lib/mysql-files -e MYSQL_ROOT_PASSWORD=root --privileged=true mysql:8.0.28

name:实例名称
mysql:8.0.28:数据库版本
MYSQL_ROOT_PASSWORD:数据库密码
/halo/mysql/log:存放日志
/halo/mysql/data:存放数据
/halo/mysql/conf:存放配置文件
/halo/mysql/mysql-files(这个应该是 mysql 8 之后加的,不然启动报错)

2、进入 MySQL 容器中登录 MySQL 并创建 Halo 需要的数据库
docker exec -it mysql /bin/bash
3、登录 MySQL
mysql -u root -p
4、创建数据库
create database halodb character set utf8mb4 collate utf8mb4_bin;
5、创建 Docker 自定义桥接网络
docker network create halo-net
6、MySQL 容器实例加入到该网络中
docker network connect halo-net mysql
7、创建 Halo 容器实例,并使用 --net 指定网络为刚才创建的 halo-net
docker run -it -d --name halo -p 9000:9000 -v /halo:/root/.halo --net halo-net --restart=unless-stopped halohub/halo:1.5.4
修改数据库密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '新的密码';

flush privileges;