前提
镜像选择v2.3.0版本,因为最新的没拉下来用的别的地方save load的镜像。
官方示例
官方文档
- 数据库脚本,直接去数据库新建数据库nacos吧,执行脚本,执行完成后,发现只有建表语句,查询得知,缺少insert语句。
INSERT INTO users (username, password, enabled) VALUES ('nacos', '$2a$10$EuWPZHzz32dJN7jexM34MOeYirDdFAZm2kuWj7VEOJhhZkDrxfvUu', TRUE);
INSERT INTO roles (username, role) VALUES ('nacos', 'ROLE_ADMIN');
这个密码吧和原服务器上nacos的密码一致,但是最后报错哈
- 继续看docker-compose对应文件
注意这里如果是启动了mysql实例了就不需要depends_on了,把application.properties文件中的mysql链接填写好就行了。
修改下这份文件。
version: '3'
services:
nacos230:
image: nacos/nacos-server:v2.3.0
container_name: nacos230
privileged: true
restart: always
environment:
- MODE=standalone
- SPRING_DATASOURCE_PLATFORM=mysql
- MYSQL_SERVICE_HOST=xxx.xxx.xxx.xxx
- MYSQL_SERVICE_DB_NAME=nacos
- MYSQL_SERVICE_USER=root
- MYSQL_SERVICE_PASSWORD=xxx
volumes:
- /home/software/nacos/logs:/home/nacos/logs
- /home/software/nacos/data:/home/nacos/data
- /home/software/nacos/conf/application.properties:/home/nacos/conf/application.properties
ports:
- 8848:8848
- 9848:9848
- 9849:9849
环境变量这里的mysql可以对应application中使用,${MYSQL_SERVICE_HOST},也可以不写MYSQL_SERVICE_前缀的这四个 ,还是把application文件中的mysql链接写对即可。
- application文件修改部分。
db.num=1
db.url.0=**
db.user.0=root
db.password.0=***
#等使用api修改了用户名密码后开启鉴权吧。官方说开启这个不影响启动。
nacos.core.auth.enabled=true
- 重设密码
curl --location --request PUT 'http://localhost:8848/nacos/v1/auth/users?username=nacos&newPassword=nacos'
可以访问了。一般数据库连接脸上,nacos就能启动成功了。剩下的用户名密码问题,我搜了下,还有说jdk降低下版本,还说不能使用openjdk,我ava17,以使用更新密码的api解决了。