文章目录
Github
官网
文档
Nacos 生态图
Nacos Docker
# 最新版镜像
docker pull nacos/nacos-server
docker pull nacos/nacos-server:v2.3.2
注: 国内网络原因无法下载镜像,nacos-server 镜像文件下载链接 https://pan.baidu.com/s/1O35cPbx6AHWUJL1v5-REzA?pwd=yjsv 提取码: yjsv。
- 导入 nacos-server 镜像
docker load -i nacos-server-v2.3.2.tar
- 创建缩主机目录
mkdir nacos && cd nacos
mkdir data logs
docker run --name nacos \
-e MODE=standalone \
-p 8848:8848 \
-d nacos/nacos-server:v2.3.2
- 复制容器内 conf 目录到缩主机
cd docker/nacos/
docker cp nacos:/home/nacos/conf ./
docker-compose.yml
services:
nacos:
image: nacos/nacos-server:v2.3.2
container_name: nacos
restart: always
ports:
- "8848:8848"
- "9848:9848"
environment:
MODE: standalone
# 开启鉴权功能
NACOS_AUTH_ENABLE: true
# 设置Token的密钥,需大于32位字符串并转义成Base64编码
NACOS_AUTH_TOKEN: "YWtkODkzNzY0ODk1Mzg3NDk4amtkaWV3a3Bsb2lkdWU="
# 登录账号
NACOS_AUTH_IDENTITY_KEY: "admin"
# 登录密码
NACOS_AUTH_IDENTITY_VALUE: "pwd123"
volumes:
- /etc/localtime:/etc/localtime
- ./nacos/conf:/home/nacos/conf
- ./nacos/data:/home/nacos/data
- ./nacos/logs:/home/nacos/logs
docker-compose up -d nacos
注意: 访问缩主机IP地址,而非 127.0.0.1 地址。以上示例并未配置 MySQL 数据库,配置数据保存在 data/config-data 目录下。
注意: 开启鉴权功能后就需要验证登录账号与密码(admin/pwd123)。
application.properties
conf/application.properties 配置连接 MySQL 数据库
db.num=1
### Connect URL of DB:
db.url.0=jdbc:mysql://mysql:3306/nacos_devtest?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC&useSSL=false&allowPublicKeyRetrieval=true
db.user.0=nacos
db.password.0=nacos
### Connection pool configuration: hikariCP
db.pool.config.connectionTimeout=30000
db.pool.config.validationTimeout=10000
db.pool.config.maximumPoolSize=20
db.pool.config.minimumIdle=2
- admin用户添加角色,解决 “命名空间的访问权限!” 报错问题。
INSERT INTO roles (username, role) VALUES ('admin', 'ROLE_ADMIN');
Spring Boot 配置文件
spring:
cloud:
nacos:
discovery:
server-addr: 192.168.0.164:8848
username: admin
password: pwd123
config:
server-addr: 192.168.0.164:8848
username: admin
password: pwd123
file-extension: yml
shared-configs:
- application-${
spring.profiles.active}.${
spring.cloud.nacos.config.file-extension}
Nacos 官方示例
# Clone 项目
git clone https://github.com/nacos-group/nacos-docker.git
cd nacos-docker
- 单机模式
# 单机模式 Derby
docker-compose -f example/standalone-derby.yaml up
# 使用 MySQL5.7
docker-compose -f example/standalone-mysql-5.7.yaml up
# 使用 MySQL8
docker-compose -f example/standalone-mysql-8.yaml up
- 功能测试
# 服务注册
curl -X POST 'http://127.0.0.1:8848/nacos/v1/ns/instance?serviceName=nacos.naming.serviceName&ip=20.18.7.10&port=8080'
# 服务发现
curl -X GET 'http://127.0.0.1:8848/nacos/v1/ns/instance/list?serviceName=nacos.naming.serviceName'
# 发布配置
curl -X POST "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test&content=helloWorld"
# 获取配置
curl -X GET "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test"