Docker安装启动Nacos2.0并开启MySQL持久化

2022-03-18 907点热度 0人点赞 0条评论

希望把SpringCloudAlibaba的Nacos安装到docker里,然后能把数据存放到MySQL作为持久化方案。

拉取镜像

默认拉取最近的镜像(2.0.x)

docker pull nacos/nacos-server

# 或者指定版本
docker pull nacos/nacos-server:v2.0.4

准备数据库初始化文件

https://github.com/alibaba/nacos/blob/master/config/src/main/resources/META-INF/nacos-db.sql

或者:https://gitee.com/mirrors/Nacos/blob/develop/config/src/main/resources/META-INF/nacos-db.sql

# 建库(我这里用的nacos,官方说明是nacos_config问题也不大,都一样)
create database nacos;
use nacos;

-- 执行或者导入 nacos-db.sql,不知道为什么这个文件里的注释还写了 【数据库全名 = nacos_config】
-- 可以直接复制粘贴到 navicat 或 terminal 上执行,200多行不是很长

# 创建 nacos 单独使用的一个用户,也可以直接把 root 用户给他
create user 'nacos'@'%' IDENTIFIED BY 'nacos';
-- 库nacos的所有表的执行存储过程、CRUD权限
grant execute, insert, select, update on nacos.* to 'nacos'@'%';
-- 刷新权限
FLUSH PRIVILEGES;

-- 查看权限
show grants for nacos;

创建日志目录

方便查看日志

# 创建 nacos 日志存放目录
mkdir -p /home/docker/nacos/logs

启动容器

docker run -d \
-e MODE=standalone \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=172.17.0.4 \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_USER=nacos \
-e MYSQL_SERVICE_PASSWORD=nacos \
-e MYSQL_SERVICE_DB_PARAM=allowPublicKeyRetrieval=true\&autoReconnect=true\&useUnicode=true\&characterEncoding=UTF-8\&useSSL=false\&serverTimezone=Asia/Shanghai \
-p 8848:8848 \
-p 8848:9848 \
-p 8848:9849 \
-v /home/docker/nacos/logs:/home/nacos/logs \
-v /home/docker/nacos/init.d/custom.properties:/home/nacos/init.d/custom.properties \
--name nacos \
--restart=always \
nacos/nacos-server

其中可以指定自定义的配置文件custom.properties:

#*************** Config Module Related Configurations ***************#
### If use MySQL as datasource:
spring.datasource.platform=mysql

### Count of DB:
db.num=1

### Connect URL of DB:
db.url.0=jdbc:mysql://172.17.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=3000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=true&serverTimezone=Asia/Shanghai
db.user.0=nacos
db.password.0=nacos

# 安全起见 开启 Nacos server 的鉴权
nacos.core.auth.enabled=true

查看启动日志

docker logs nacos
# 或者
tail -f /home/docker/nacos/logs/nacos.log

访问

http://ip:8848/nacos 用户名和密码默认都是nacos

修改用户名或者密码后,再去数据库查看nacos.users表,里面的记录已经修改了,说明使用的是持久化是mysql

admin

这个人很懒,什么都没留下

文章评论

您需要 登录 之后才可以评论