Blog.L

Blog.L

使用 Docker 部署 Halo

3
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;