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后无默认值 因此需要修改配置文件,手动增加一个默认值。