Nacos Docker 快速开始
一、参见官网 Nacos Docker 快速开始
- Clone 项目
git clone https://github.com/nacos-group/nacos-docker.git cd nacos-docker
- 单机模式 Derby
docker-compose -f example/standalone-derby.yaml up
裁剪standalone-derby.yaml,删除prometheus、grafana,命名为standalone-me.yaml
standalone-me.yaml如下:
version: "2"
services:
nacos:
image: nacos/nacos-server:${NACOS_VERSION}
container_name: nacos-standalone
environment:
- PREFER_HOST_MODE=hostname
- MODE=standalone
- NACOS_AUTH_IDENTITY_KEY=serverIdentity
- NACOS_AUTH_IDENTITY_VALUE=security
- NACOS_AUTH_TOKEN=eXpsaEAyMDIzbWlubmVyQDIwMjMxMjN2aWdmbzNkNjM4d2didmFyaHly
volumes:
- ./standalone-logs/:/home/nacos/logs
ports:
- "8848:8848"
- "9848:9848"
二、开启鉴权
参考资料 nacos 2.2.3版本部署_nacos2.2.3鉴权配置-CSDN博客
进入容器,修改配置
root@yzlhserver2:~# docker exec -it 15338c65e512 /bin/bash [root@15338c65e512 nacos]# [root@15338c65e512 nacos]# ll total 68 -rw-r--r-- 1 502 games 16583 Mar 6 2023 LICENSE -rw-r--r-- 1 502 games 1305 May 14 2020 NOTICE drwxr-xr-x 1 root root 4096 Jun 12 19:40 bin drwxr-xr-x 1 502 games 4096 Dec 8 15:17 conf drwxr-xr-x 5 root root 4096 Sep 7 14:31 data -rw-r--r-- 1 root root 683 Sep 7 14:32 derby.log drwxr-xr-x 3 root root 4096 Sep 7 14:31 file: drwxr-xr-x 2 root root 12288 Dec 8 15:04 logs lrwxrwxrwx 1 root root 11 Jun 12 19:40 start.out -> /dev/stderr drwxr-xr-x 2 root root 4096 Jun 12 19:40 target drwxr-xr-x 3 root root 4096 Sep 7 14:31 work [root@15338c65e512 nacos]# ll conf/ total 68 -rw-r--r-- 1 502 games 1224 Mar 13 2023 1.4.0-ipv6_support-update.sql -rw-r--r-- 1 502 games 127 May 24 2023 announcement.conf -rw-r--r-- 1 root root 2742 Dec 8 15:06 application.properties -rw-r--r-- 1 502 games 8939 May 24 2023 derby-schema.sql -rw-r--r-- 1 502 games 10825 May 25 2023 mysql-schema.sql -rw-r--r-- 1 502 games 31156 May 25 2023 nacos-logback.xml [root@15338c65e512 nacos]# vi conf/application.properties
开启鉴权之后,application.properties中的配置信息为:
### If turn on auth system: nacos.core.auth.system.type=nacos nacos.core.auth.enabled=true
自定义密钥时,推荐将配置项设置为Base64编码的字符串,且原始密钥长度不得低于32字符。例如下面的的例子:
### The default token(Base64 String): nacos.core.auth.default.token.secret.key=VGhpc0lzTXlDdXN0b21TZWNyZXRLZXkwMTIzNDU2Nzg= ### 2.1.0 版本后 nacos.core.auth.plugin.nacos.token.secret.key=VGhpc0lzTXlDdXN0b21TZWNyZXRLZXkwMTIzNDU2Nzg=
注意:鉴权开关是修改之后立马生效的,不需要重启服务端。动态修改token.secret.key时,请确保token是有效的,如果修改成无效值,会导致后续无法登录,请求访问异常。
[root@15338c65e512 nacos]# vi conf/application.properties server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D %{User-Agent}i %{Request-Source}i server.tomcat.accesslog.enabled=${TOMCAT_ACCESSLOG_ENABLED:false} server.error.include-message=ALWAYS # default current work dir server.tomcat.basedir=file:. #*************** Config Module Related Configurations ***************# ### Deprecated configuration property, it is recommended to use `spring.sql.init.platform` replaced. #spring.datasource.platform=${SPRING_DATASOURCE_PLATFORM:} spring.sql.init.platform=${SPRING_DATASOURCE_PLATFORM:} nacos.cmdb.dumpTaskInterval=3600 nacos.cmdb.eventTaskInterval=10 nacos.cmdb.labelTaskInterval=300 nacos.cmdb.loadDataAtStart=false 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.user.0=${MYSQL_SERVICE_USER} db.password.0=${MYSQL_SERVICE_PASSWORD} ### The auth system to use, currently only 'nacos' and 'ldap' is supported: nacos.core.auth.system.type=${NACOS_AUTH_SYSTEM_TYPE:nacos} #nacos.core.auth.enabled配置修改实时生效,不需要重启 #nacos.core.auth.enabled=true ### worked when nacos.core.auth.system.type=nacos ### The token expiration in seconds: nacos.core.auth.plugin.nacos.token.expire.seconds=${NACOS_AUTH_TOKEN_EXPIRE_SECONDS:18000} ### The default token: nacos.core.auth.plugin.nacos.token.secret.key=${NACOS_AUTH_TOKEN:eXpsaEAyMDIzbWlubmVyQDIwMjMxMjN2aWdmbzNkNjM4d2didmFyaHly} ### Turn on/off caching of auth information. By turning on this switch, the update of auth information would have a 15 seconds delay. nacos.core.auth.caching.enabled=${NACOS_AUTH_CACHE_ENABLE:false} nacos.core.auth.enable.userAgentAuthWhite=${NACOS_AUTH_USER_AGENT_AUTH_WHITE_ENABLE:false} nacos.core.auth.server.identity.key=${NACOS_AUTH_IDENTITY_KEY:serverIdentity} nacos.core.auth.server.identity.value=${NACOS_AUTH_IDENTITY_VALUE:security} ## spring security config ### turn off security nacos.security.ignore.urls=${NACOS_SECURITY_IGNORE_URLS:/,/error,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/v1/auth/**,/v1/console/health/**,/actuator/**,/v1/console/server/**} # metrics for elastic search management.metrics.export.elastic.enabled=false management.metrics.export.influx.enabled=false nacos.naming.distro.taskDispatchThreadCount=10 nacos.naming.distro.taskDispatchPeriod=200 nacos.naming.distro.batchSyncKeyCount=1000 nacos.naming.distro.initDataRatio=0.9 nacos.naming.distro.syncRetryDelay=5000 nacos.naming.data.warmup=true