Docker部署Nacos
前言
关于Mysql的部署: Mysql部署
Hare 通过Mysql数据库来进行启动nacos,所以启动Nacos前必定要先启动一个Mysql容器!!!!!!
环境准备
基于Linux云服务器
- nacos镜像版本1.4.6
-
# 官方地址: https://hub.docker.com/r/nacos/nacos-server/tags
docker pull nacos/nacos-server:v1.4.6
-
- Docker版本26.0.0 安装文章
- Mysql8 Mysql容器
创建数据卷挂载文件
前言
我的做法是先启动一个nacos,通过docker cp命令将配置文件cp到宿主机目录
mkdir -p /usr/local/dockerdata/{conf,data,logs,bin}
还有一种做法不用先启动:直接创建宿主机的挂载目录创建配置文件(需要自己找配置)做法感觉不稳妥。。。。
启动nacos
docker run --name nacos -d nacos/nacos-server:v1.4.6
cp配置目录
# 这里我将bin配置文件一起cp了
docker cp nacos-server:/home/nacos/conf /usr/local/dockerdata/nacos/
docker cp nacos-server:/home/nacos/logs /usr/local/dockerdata/nacos/
docker cp nacos-server:/home/nacos/bin /usr/local/dockerdata/nacos/
docker cp nacos-server:/home/nacos/data /usr/local/dockerdata/nacos/
修改宿主机conf配置文件
修改的是application.properties文件
若自己有需要,可按自需修改
原配置
spring.datasource.platform=${SPRING_DATASOURCE_PLATFORM:""}
修改后配置 # "" 换成mysql
spring.datasource.platform=${SPRING_DATASOURCE_PLATFORM:mysql}
#这地方写的 1 就把url.1注释掉就行
db.num=${MYSQL_DATABASE_NUM:1}
原配置
db.url.0=jdbc:mysql://${MYSQL_SERVICE_HOST}:${MYSQL_SERVICE_PORT:3306}/${MYSQL_SERVICE_DB_NAME}?${MYSQL_SERVICE_DB_PARAM:characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false}
修改后配置
db.url.0=jdbc:mysql://192.168.1.12:3306/nacos?${MYSQL_SERVICE_DB_PARAM:characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false}
另一种写法
db.url.0=jdbc:mysql://${MYSQL_SERVICE_HOST:192.168.1.12}:${MYSQL_SERVICE_PORT:3306}/${MYSQL_SERVICE_DB_NAME:nacos}?${MYSQL_SERVICE_DB_PARAM:characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false}
#db.url.1=jdbc:mysql://${MYSQL_SERVICE_HOST}:${MYSQL_SERVICE_PORT:3306}/${MYSQL_SERVICE_DB_NAME}?${MYSQL_SERVICE_DB_PARAM:characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false}
原配置
db.user=${MYSOL SERVICE USER}
db.password=${MYSOL SERVICE PASSWORD}
修改后配置
db.user=root
db.password=123456
另一种写法
db.user=${MYSOL SERVICE USER:root}
db.password=${MYSOL SERVICE PASSWORD:123456}
最好加上,开启登录。启动nacos1.4.6版本后,启动参数没有加 -e NACOS_AUTH_ENABLE=true 环境变量。默认好像不存在登录环节
最后三个配置的值可以自定义
nacos.core.auth.enabled=true
nacos.core.auth.default.token.secret.key=${NACOS_AUTH_TOKEN:NjZhiougtMhe2EyNGMxNjNkNTgzY2ExNjAwYTZjMmNlZjczMjgyY2ZkZDcxMzBjNzM5ZjlkNmFhM2JlZTM2Mw==}
nacos.core.auth.server.identity.key=${NACOS_AUTH_IDENTITY_KEY:nacosKey}
nacos.core.auth.server.identity.value=${NACOS_AUTH_IDENTITY_VALUE:nacosValue}
warning
最后一段配置nacos.core.auth.default.token.secret.key必须给一个base64编码的key(怎么生成都行)。必须保证>32位
1. openssl rand -hex 32 # 获取秘钥
2. 再去在线Base64 编码
Mysql中关于nacos的脚本
直接贴一个官方地址: Nacos官方sql脚本
执行完脚本后,需要再手动 添加用户~默认账户密码就是 nacos
INSERT INTO users (username, password, enabled) VALUES ('nacos', '$2a$10$EuWPZHzz32dJN7jexM34MOeYirDdFAZm2kuWj7VEOJhhZkDrxfvUu', TRUE);
INSERT INTO roles (username, role) VALUES ('nacos', 'ROLE_ADMIN');