Docker容器

Docker一键极速安装Nacos,并配置数据库!

本文主要是介绍Docker一键极速安装Nacos,并配置数据库!,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1 部署方式

1.1 DockerHub

javaedge@JavaEdgedeMac-mini ~ % docker run --name nacos \
-e MODE=standalone \
-e JVM_XMS=128m \
-e JVM_XMX=128m \
-e JVM_XMN=64m \
-e JVM_MS=64m \
-e JVM_MMS=64m \
-p 8848:8848 \
-d nacos/nacos-server:v2.2.3
a624c64a1a25ad2d15908a67316d53212402c5cd340ad87cbcff0ad22a712388

# 自启动
javaedge@JavaEdgedeMac-mini ~ % docker update nacos --restart=always
nacos
javaedge@JavaEdgedeMac-mini ~ %

1.2 官网

1.2.1 Clone 项目

git clone https://github.com/nacos-group/nacos-docker.git
cd nacos-docker

1.2.2 单机模式

Derby:

docker-compose -f example/standalone-derby.yaml up

单机模式的MySQL:

MySQL5.7:

docker-compose -f example/standalone-mysql-5.7.yaml up

MySQL8:

docker-compose -f example/standalone-mysql-8.yaml up

1.2.3 集群模式

docker-compose -f example/cluster-hostname.yaml up 

2 基本操作

服务注册

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"

3 常见属性配置

属性名称 描述 选项
MODE 系统启动方式: 集群/单机 cluster/standalone默认 cluster
NACOS_SERVERS 集群地址 p1:port1空格ip2:port2 空格ip3:port3
PREFER_HOST_MODE 支持IP还是域名模式 hostname/ip 默认 ip
NACOS_SERVER_PORT Nacos 运行端口 默认 8848
NACOS_SERVER_IP 多网卡模式下可以指定IP
SPRING_DATASOURCE_PLATFORM 单机模式下支持MYSQL数据库 mysql / 空 默认:空
MYSQL_SERVICE_HOST 数据库 连接地址
MYSQL_SERVICE_PORT 数据库端口 默认 : 3306
MYSQL_SERVICE_DB_NAME 数据库库名
MYSQL_SERVICE_USER 数据库用户名
MYSQL_SERVICE_PASSWORD 数据库用户密码
MYSQL_SERVICE_DB_PARAM 数据库连接参数 default : characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false
MYSQL_DATABASE_NUM 数据库编号 默认 :1
JVM_XMS -Xms 默认 :1g
JVM_XMX -Xmx 默认 :1g
JVM_XMN -Xmn 默认 :512m
JVM_MS -XX:MetaspaceSize 默认 :128m
JVM_MMS -XX:MaxMetaspaceSize 默认 :320m
NACOS_DEBUG 是否开启远程DEBUG y/n 默认 :n
TOMCAT_ACCESSLOG_ENABLED server.tomcat.accesslog.enabled 默认 :false
NACOS_AUTH_SYSTEM_TYPE 权限系统类型选择,目前只支持nacos类型 默认 :nacos
NACOS_AUTH_ENABLE 是否开启权限系统 默认 :false
NACOS_AUTH_TOKEN_EXPIRE_SECONDS token 失效时间 默认 :18000
NACOS_AUTH_TOKEN token 默认 :SecretKey012345678901234567890123456789012345678901234567890123456789
NACOS_AUTH_CACHE_ENABLE 权限缓存开关 ,开启后权限缓存的更新默认有15秒的延迟 默认 : false
MEMBER_LIST 通过环境变量的方式设置集群地址 例子:192.168.16.101:8847?raft_port=8807,192.168.16.101?raft_port=8808,192.168.16.101:8849?raft_port=8809
EMBEDDED_STORAGE 是否开启集群嵌入式存储模式 embedded 默认 : none
NACOS_AUTH_CACHE_ENABLE nacos.core.auth.caching.enabled default : false
NACOS_AUTH_USER_AGENT_AUTH_WHITE_ENABLE nacos.core.auth.enable.userAgentAuthWhite default : false
NACOS_AUTH_IDENTITY_KEY nacos.core.auth.server.identity.key default : serverIdentity
NACOS_AUTH_IDENTITY_VALUE nacos.core.auth.server.identity.value default : security
NACOS_SECURITY_IGNORE_URLS nacos.security.ignore.urls default : /,/error,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/v1/auth/**,/v1/console/health/**,/actuator/**,/v1/console/server/**

4 Nacos + Grafana + Prometheus

参考:Nacos监控指南

Note: grafana创建一个新数据源时,数据源地址必须是 http://prometheus:9090

5 访问Dashboard

localhost:8848/nacos,可见:

默认账户 nacos/nacos:

占用内存很高:

CONTAINER ID   NAME      CPU %     MEM USAGE / LIMIT     MEM %     NET I/O           BLOCK I/O     PIDS
a624c64a1a25   nacos     1.70%     920.2MiB / 7.675GiB   11.71%    76.2kB / 5.08MB   0B / 15.9MB   259
^C%

6 应用集成

引入依赖

<!-- 引入nacos注册中心 -->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

客户端注册

spring:
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848

作者简介:魔都国企技术专家兼架构,多家大厂后台研发和架构经验,负责复杂度极高业务系统的模块化、服务化、平台化研发工作。具有丰富带团队经验,深厚人才识别和培养的积累。

参考:

  • 编程严选网
  • Nacos
  • Nacos Docker
这篇关于Docker一键极速安装Nacos,并配置数据库!的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!