docker安装新版nacos鉴权(登陆密码)问题解决

问题出现:(2023)在用服务器上的docker安装最新版本的nacos(2.2.2)后,启动之后,本地连接之后发现没有登陆过程,直接进入主页面,而且功能被限制,比如导入配置时,使用f12查看控制台会发现有报错。 具体从哪个版本开始没有默认鉴权我没深究,应该是2.2.0.1之后。
本人新手,因为对docker以及nacos都不是很熟悉,所以走了很多弯路,所以记录一下解决过程,仅供其他新手参考。

1.安装过程

docker pull nacos/nacos-server

2.挂载日志和配置文件

在本地创建日志和配置的目录即可。

mkdir -p /mydata/nacos/logs/                      
mkdir -p /mydata/nacos/init.d/

这个不是这次的重点,可以去其他文章学习。

3.创建容器

docker run -d -p 8848:8848 --env MODE=standalone --env PREFER_HOST_MODE=hostname  -v /mydata/nacos/init.d:/home/nacos/init.d -v /mydata/nacos/logs:/home/nacos/logs --name nacos nacos/nacos-server

4.启动

docker start nacos

此时访问就可以访问http://ip:8848/nacos (ip为你服务器所在ip,或者本地localhost)

注意,最前面不是https

之后会发现直接进入nacos主页,跳过了登陆步骤,并且页面上方提示“当前集群没有开启鉴权,请参考开启鉴权~”,如图:

此时某些操作之后,控制台会报错

先看解决办法,时间紧张的同学解决完可以直接溜。
    解决办法-修改配置

1.通过docker进入nacos容器

docker exec -it nacos /bin/bash

(上面代码中的 nacos 是我的容器名字,如果不同,更换成自己的即可。)

2.进入配置文件夹

cd conf/

3.修改配置文件

vim application.properties

新增两行,修改三行 ,效果如图:

代码:

##新增两行
nacos.core.auth.enabled=true
nacos.core.auth.enable.userAgentAuthWhite=false

##修改三行
nacos.core.auth.plugin.nacos.token.secret.key=${NACOS_AUTH_TOKEN:SecretKey01234567890123456789012345345678999987654901234567890123456789}
nacos.core.auth.server.identity.key=${NACOS_AUTH_IDENTITY_KEY:example}
nacos.core.auth.server.identity.value=${NACOS_AUTH_IDENTITY_VALUE:example}
其中 SecretKey01234567890123456789012345345678999987654901234567890123456789 可以随意修改,长度保持差不多或者长一点就可以。 ps:如果太短,你就有理由看日志为什么报错了。也是锻炼的机会哦🐶。

4.然后保存退出之后,退出容器

exit

5.重启nacos

docker stop nacos
docker start nacos

再次访问http://ip:8848/nacos

bingo。

想要知道为什么的同学,可以继续往下看一点。
    解决依据

点击图片中“”可以跳转到nacos的官方文档中心

文档中非常清楚的表明,开启鉴权的方法

但是,当你直接使用这个官方命令运行之后会发现,容器竟然直接启动失败,不要怀疑自己是不是哪里操作错误,文档的问题(有点无语🙃),不过还好报错信息还是清楚的,需要另外增加配置。

好奇的同学,可以使用下面命令查看启动失败的原因。解决办法对应的是上面配置文件中做的那三行修改。

docker logs nacos
ps:测试过程中出现问题无法进行时可以删除容器,重新run
注意括号里的:2.2.0.1后无默认值 因此需要修改配置文件,手动增加一个默认值。
经验分享 程序员 微信小程序 职场和发展