linux安装nacos&Docker安装nacos

参考 https://nacos.io/zh-cn/docs/quick-start.htmlhttps://nacos.io/docs/latest/quickstart/quick-start-docker/

在这里插入图片描述

linux安装nacos

1.下载
wget https://github.com/alibaba/nacos/releases/download/2.0.4/nacos-server-2.0.4.tar.gz
2.解压
unzip nacos-server- v e r s i o n . z i p 或者 t a r − x v f n a c o s − s e r v e r − version.zip 或者 tar -xvf nacos-server- version.zip或者tarxvfnacosserverversion.tar.gz
3.启动服务器
cd nacos/bin
Linux/Unix/Mac
启动命令(standalone代表着单机模式运行,非集群模式):

sh startup.sh -m standalone

如果您使用的是ubuntu系统,或者运行脚本报错提示[[符号找不到,可尝试如下运行:

bash startup.sh -m standalone

Windows
启动命令(standalone代表着单机模式运行,非集群模式):

startup.cmd -m standalone

4.服务注册&发现和配置管理
服务注册
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”

5.关闭服务器
Linux/Unix/Mac
sh shutdown.sh

Windows
shutdown.cmd

或者双击shutdown.cmd运行文件。

Docker安装nacos

端口说明:9848为2.0之后新增的grpc通信端口,如果是单机启动,9849不需要,7848也不需要

安装时发现-e JVM_XMS=256m -e JVM_XMX=256m -e JVM_XMN=128m -e JVM_MS=64m -e JVM_MMS=128m低于上面的配置不能完全启动成功,会内存溢出

要在standalone模式远程调试nacos需以下配置(不需在standalone模式下调试,可跳过此节,直接查看docker安装nacos重新整理安装和配置)

监控jvm使用情况:
-Dcom.sun.management.jmxremote 开启jmx远程连接
-Dcom.sun.management.jmxremote.rmi.port=8890 映射 宿主机端口,一定要注意这个是jmx的端口
-Dcom.sun.management.jmxremote.port=8890 docker 容器端口
-Djava.rmi.server.hostname= 你的服务器ip,客户端可访问的外网地址
-Dcom.sun.management.jmxremote.ssl=false 是否采用ssl协议
-Dcom.sun.management.jmxremote.authenticate=false 是否通过账户密码
-Dcom.sun.management.jmxremote.acccess.file=jmxremote.access 不起作用,文件名错了或文件找不到也不报错
-Dcom.sun.management.jmxremote.password.file=jmxremote.password

jmxremote.password里的用户固定为monitorRole和controlRole 其他自定义用户不起作用
在docker-startup.sh文件里加上

#jconsole
JAVA_OPT="${JAVA_OPT} -Dcom.sun.management.jmxremote"
JAVA_OPT="${JAVA_OPT} -Dcom.sun.management.jmxremote.rmi.port=5505"
JAVA_OPT="${JAVA_OPT} -Dcom.sun.management.jmxremote.port=5505"
JAVA_OPT="${JAVA_OPT} -Djava.rmi.server.hostname=内网不行,需外网地址"
JAVA_OPT="${JAVA_OPT} -Dcom.sun.management.jmxremote.ssl=false"
JAVA_OPT="${JAVA_OPT} -Dcom.sun.management.jmxremote.authenticate=true"
JAVA_OPT="${JAVA_OPT} -Dcom.sun.management.jmxremote.password.file=/home/nacos/jmxremote/jmxremote.password"

Error: Password file read access must be restricted: /etc/cassandra/jmxremote.password
在配置JMX远程访问的时候,设置jmxremote.password文件权限,修改该文件时添加写权限,chmod +w jmxremote.password ,放开角色信息那俩行的注释,保存,再使用chmod 0400 jmxremote.password
这样就是它正确的权限设置
在这里插入图片描述
在application.proerties中配置mysql的方法
把下面这段放到conf/application.proerties文件里就生效了

#mysql数据库配置
SPRING_DATASOURCE_PLATFORM=mysql
MYSQL_DATABASE_NUM=1
MYSQL_SERVICE_HOST=公网ip 主机的内网不行或者用mysql容器的ip(没尝试)
MYSQL_SERVICE_PORT=3306
MYSQL_SERVICE_DB_NAME=nacos_config
MYSQL_SERVICE_USER=nacos
MYSQL_SERVICE_PASSWORD=123456
MYSQL_SERVICE_DB_PARAM=characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false&allowPublicKeyRetrieval=true

docker安装nacos重新整理安装和配置

  1. 下载镜像
docker pull nacos/nacos-server:v2.4.3
  1. 简单启动nacos命令(为了看nacos的默认配置文件,mysql初始化脚本【当然也可从其他方式,如官网,github直接查看或下载】),在这里直接从容器中获取这些文件。
docker run --name nacos -d -p 8848:8848 -e MODE=standalone -e JVM_XMS=128m -e JVM_XMX=128m -e JVM_XMN=64m -e JVM_MS=96m -e JVM_MMS=128m  nacos/nacos-server:v2.4.3

将容器内的/home/nacos/conf复制到宿主机/opt/config/nacos

mkdir -p /opt/config/nacos
sudo docker cp nacos:/home/nacos/conf /opt/config/nacos

在数据库中新建nacos_config库,执行脚本mysql-schema.sql。然后创建一个用户

create user 'nacos'@'%' IDENTIFIED by '123456';
grant all privileges on nacos_config.* to 'nacos'@'%';
FLUSH PRIVILEGES;
  1. 编辑docker compose的yaml文件 6-nacos.yml
services:
  nacos:
    image: nacos/nacos-server:v2.4.3
    container_name: nacos
    #cap_add:
      # 只是为了在容器中用jmap,jps,jinfo命令时配的,一般不需要
      #- SYS_PTRACE
    volumes:
      - /opt/services/nacos/logs:/home/nacos/logs
      #用env_file或environment代替下面的配置
      #- /opt/services/nacos/conf/application.properties:/home/nacos/conf/application.properties
      #- /opt/services/nacos/jmxremote:/home/nacos/jmxremote#调试nacos,standalone模式启动需修改容器内/home/nacos/bin/docker-startup.sh
    env_file:
      - /opt/config/nacos/nacos-standalone-mysql.env
    #environment中的变量比env_file中的优先级高,如果有重复则environment会覆盖env_file文件中的变量
    environment:
      JVM_XMS: 128m
      JVM_XMX: 128m
      JVM_XMN: 64m
      JVM_MS: 96m
      JVM_MMS: 128m
    ports:
      #- 5505:5505#调试nacos
      - 8848:8848
      - 9848:9848
networks:
  default:
    name: sill

nacos的配置可以用application.properties,我这里用了https://github.com/nacos-group/nacos-docker/blob/master/example/standalone-mysql-8.yaml官方示例中的方式。
/opt/config/nacos/nacos-standalone-mysql.env的内容如下:

PREFER_HOST_MODE=hostname
MODE=standalone
SPRING_DATASOURCE_PLATFORM=mysql
# mysql是容器的名称,因为同在一个网络:sill中,所以可以用容器名称作为主机名
MYSQL_SERVICE_HOST=mysql
MYSQL_SERVICE_DB_NAME=nacos_conf
MYSQL_SERVICE_PORT=3306
MYSQL_SERVICE_USER=nacos
MYSQL_SERVICE_PASSWORD=nacos
MYSQL_SERVICE_DB_PARAM=characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
NACOS_AUTH_IDENTITY_KEY=2222
NACOS_AUTH_IDENTITY_VALUE=2xxx
NACOS_AUTH_TOKEN=SecretKey012345678901234567890123456789012345678901234567890123456789

创建nacos日志文件挂载目录

mkdir -p /opt/services/nacos/logs

4.运行。先停掉之前启动的nacos容器,然后正式启动。

sudo docker stop nacos
docker rm nacos

启动

sudo docker compose -f 6-nacos.yml up -d
另外停止并删除容器命令
sudo docker compose -f 6-nacos.yml up -d
仅停止容器命令
sudo docker stop nacos
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值