Docker安装nacos并开启鉴权


本文就简单明了的说一下Docker安装Nacos,并且开启一下鉴权,这个鉴权有点小坑,后面会说。

一、拉取镜像

Docker的安装和配置镜像加速在这篇文章,有需要的可以点击:Docker之路(一)–安装Docker
选择Nacos版本
Nacos版本分为两部分:2.2.2之前和2.2.2之后的,2.2.2之前Nacos默认控制台,无论服务端是否开启鉴权,都会存在一个登录页;这导致很多用户被误导认为Nacos默认是存在鉴权的。在社区安全工程师的建议下,Nacos自2.2.2版本开始,在未开启鉴权时,默认控制台将不需要登录即可访问,同时在控制台中给予提示,提醒用户当前集群未开启鉴权。
我们这里直接拉取最新版本的:latest

Docker pull nacos/nacos-server

如果你要指定版本,就参考如下格式:

Docker pull nacos/nacos-server:v2.2.0

二、在本地创建挂载目录的文件

目录你随意,主要挂载容器内部conf和logs这两个目录下的文件

mkdir -p /data/dockerData/nacos/conf
mkdir -p /data/dockerData/nacos/logs

三、创建临时Nacos容器(会删除),将容器内部conf和logs下的文件拷贝

1.启动容器

docker run -d --name nacos nacos/nacos-server

2.复制

docker cp nacos:/home/nacos/logs /data/dockerData/nacos
docker cp nacos:/home/nacos/conf /data/dockerData/nacos

3.删除容器

docker rm -f nacos

四、运行最终Nacos容器

启动指定:

docker run -d \
        --name nacos \
        -p 8848:8848 \
        -p 9848:9848 \
        -p 9849:9849 \
        -e JVM_XMS=128m \
        -e JVM_XMX=128m \
        -e MODE=standalone \
        -v /data/dockerData/nacos/conf:/home/nacos/conf \
        -v /data/dockerData/nacos/logs:/home/nacos/logs \
        --restart=always \
        nacos/nacos-server

参数解读
JVM_XMS和JVM_XMX:jvm最大和最小容量,默认1G
MODE:系统启动方式: 集群/单机
restart:是否跟随Docker重启而重启

五、开放端口

参考我这篇文章:Linux放行端口

六、浏览器访问

输入ip:8848/nacos/index.html
在这里插入图片描述
可以看到,主页会显示当前集群没有开启鉴权,参考文档开启鉴权

七、开启鉴权

这时候坑来了
官方文档里面内容是这样的,我原话复制一下:
Docker环境
官方镜像
如果使用官方镜像,请在启动docker容器时,添加如下环境变量

NACOS_AUTH_ENABLE=true

例如,可以通过如下命令运行开启了鉴权的容器:

docker run --env PREFER_HOST_MODE=hostname --env MODE=standalone --env NACOS_AUTH_ENABLE=true -p 8848:8848 nacos/nacos-server

如果这时候你傻乎乎的去关掉容器,重启用run命令启动nacos,加入NACOS_AUTH_ENABLE=true的参数,你会发现根本就启动不了,容器报错,这是最坑的,作为官方文档,内容竟然是错的。或许别人这说的是官方镜像,我去官方下载的镜像,不属于官方镜像。

正确的开启鉴权做法是怎样呢?
1.回到第四步运行最终Nacos容器开启的那个容器,进入Nacos容器内部

docker exec -it nacos bash

2.修改conf下面的配置文件

cd conf
vim application.properties

在这里插入图片描述
如图所示:修改三行,新增2行。
新增的两行:

##新增两行
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:admin}
nacos.core.auth.server.identity.value=${NACOS_AUTH_IDENTITY_VALUE:admin}

其中:SecretKey01234567890123456789012345345678999987654901234567890123456789这一长串你可以修改为随意数字,不要太短就行
admin也可以改为其他的单词随你,官方的解释是:配置自定义身份识别的key(不可为空)和value(不可为空)
3.重启Nacos容器

docker restart nacos

4.浏览器重新访问
在这里插入图片描述
这时候我们输入用户名和密码都为nacos,然后发现第一次登录,是在设置我们的密码,这个你自己随意设置。然后点提交后会提示我们初始化密码成功,然后第一次登录还会出现错误情况,这时候不管,刷新一下页面,用你设置的用户名和密码再登录,就能进入控制台了

在这里插入图片描述
现在就是可以正常使用了,如果本文对你产生了帮助,希望不要吝啬你的小手,帮忙一键三连哦!

  • 10
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker Nacos是一个开源的动态服务发现、配置和服务管理平台,它提供了一个简单易用的Web UI和RESTful API,可以帮助用户轻松地实现微服务架构。在Nacos开启鉴权可以提高系统的安全性,确保只有授权用户可以访问敏感资源。以下是Docker Nacos开启鉴权的具体步骤: 1. 在Nacos的配置文件(nacos/conf/application.properties)中配置以下参数: ``` nacos.security.enable=true nacos.security.ignore.urls=/,/error,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/**,/v1/auth/**,/v1/console/**,/actuator/**,/nacos/**,/plugins/**,/app/**,/health/**,/app/*/*/health/**,/proxy/*/*/metrics,/proxy/*/*/prometheus nacos.security.auth.enabled=true nacos.security.auth.configs=nacos.plugin.security.auth.DefaultAuthConfig ``` 其中,nacos.security.enable=true表示开启Nacos的安全模式;nacos.security.ignore.urls是忽略认证的URL列表,包括默认URL和用户自定义URL;nacos.security.auth.enabled=true表示开启Nacos的权限认证功能;nacos.security.auth.configs=nacos.plugin.security.auth.DefaultAuthConfig表示使用默认的权限认证配置。 2. 在Nacos的插件目录(nacos/plugins)下创建一个auth目录,并在该目录下创建一个文件名为nacos-auth.jar的jar包。该jar包包含了自定义的权限认证实现类。 3. 启动Nacos服务,此时Nacos就会自动加载插件目录下的jar包,并使用自定义的权限认证实现类来进行认证。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值