zoukankan      html  css  js  c++  java
  • docker安装nacos并配置mysql持久化

    docker安装nacos并配置mysql持久化

    安装mysql

    • 前置工作

      docker pull mysql:5.7.32 版本自行选择,大于5.6版本即可

      # 创建挂载目录
      mkdir -p home/docker/mysql/conf
      mkdir -p /home/docker/mysql/logs
      mkdir -p /home/docker/mysql/data
      
    • 安装

      docker run --restart=always  -p 3306:3306 --name mysql 
      -v /home/docker/mysql/conf:/etc/mysql/conf.d  # 挂载目录
      -v /home/docker/mysql/logs:/var/log/mysql 
      -v /home/docker/mysql/data:/var/lib/mysql 
      -e MYSQL_ROOT_PASSWORD=123456   # 初始化密码
      -d mysql:5.7.32  # -d 后台启动
      
    • 开放远程访问

      # 进入mysql容器
      docker exec -it mysql /bin/bash
      # 创建用于远程访问的用户
      CREATE USER 'yourName'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
      GRANT ALL PRIVILEGES ON *.* TO 'yourName'@'%';
      FLUSH PRIVILEDGES;
      
    • 运行nacos脚本

      脚本文件:nacos-db.sql

    安装nacos

    • 前置工作

      # 获取镜像
      docker pull nacos/nacos-server:1.4.0
      # 创建本地挂载目录
      mkdir -p /home/docker/nacos/conf/
      touch custom.properties
      mkdir -p /home/docker/nacos/logs
      
    • 安装

      # nacos安装命令
      docker run -d -p 8848:8848 
      -e MODE=standalone 
      -e PREFER_HOST_MODE=hostname 
      -e SPRING_DATASOURCE_PLATFORMSPRING_DATASOURCE_PLATFORM=mysql 
      -e MYSQL_SERVICE_HOST=192.168.56.101 
      -e MYSQL_SERVICE_PORT=3306 
      -e MYSQL_SERVICE_DB_NAME=nacos 
      -e MYSQL_SERVICE_USER=root 
      -e MYSQL_SERVICE_PASSWORD=123456 
      -e MYSQL_DATABASE_NUM=1 
      -v /home/docker/nacos/conf/custom.properties:/home/nacos/init.d/custom.properties 
      -v /home/docker/nacos/logs:/home/nacos/logs 
      --restart always --name nacos nacos/nacos-server:1.4.0
      

      命令说明

      • -v 挂载目录,规则与端口映射相同。
      • **-d ** 表示后台启动redis
      • **-e MODE=standalone ** 单节点启动
      • -e MYSQL_SERVICE xxxxx 中间配置为配置mysql持久化

      具体配置参数参考官方文档

      参数名 描述 可选项 默认值
      MODE cluster模式/standalone模式 cluster/standalone cluster
      NACOS_SERVERS nacos cluster地址 eg. ip1,ip2,ip3
      PREFER_HOST_MODE 是否支持hostname hostname/ip ip
      NACOS_SERVER_PORT nacos服务器端口 8848
      NACOS_SERVER_IP 多网卡下的自定义nacos服务器IP
      SPRING_DATASOURCE_PLATFORM standalone 支持 mysql mysql/empty empty
      MYSQL_MASTER_SERVICE_HOST mysql 主节点host
      MYSQL_MASTER_SERVICE_PORT mysql 主节点端口 3306
      MYSQL_MASTER_SERVICE_DB_NAME mysql 主节点数据库
      MYSQL_MASTER_SERVICE_USER 数据库用户名
      MYSQL_MASTER_SERVICE_PASSWORD 数据库密码
      MYSQL_SLAVE_SERVICE_HOST mysql从节点host
      MYSQL_SLAVE_SERVICE_PORT mysql从节点端口 3306
      MYSQL_DATABASE_NUM 数据库数量 2
      JVM_XMS -Xms 2g
      JVM_XMX -Xmx 2g
      JVM_XMN -Xmn 1g
      JVM_MS -XX:MetaspaceSize 128m
      JVM_MMS -XX:MaxMetaspaceSize 320m
      NACOS_DEBUG 开启远程调试 y/n n
      TOMCAT_ACCESSLOG_ENABLED server.tomcat.accesslog.enabled false

      修改配置文件

      进入本地挂载的目录下 cd /home/docker/nacos/conf/

      修改配置文件 vim custom.properties 内容如下,主要是配置mysql

      # spring
      server.servlet.contextPath=${SERVER_SERVLET_CONTEXTPATH:/nacos}
      server.contextPath=/nacos
      server.port=${NACOS_APPLICATION_PORT:8848}
      spring.datasource.platform=mysql
      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://192.168.56.101:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
      # spring
      server.servlet.contextPath=${SERVER_SERVLET_CONTEXTPATH:/nacos}
      server.contextPath=/nacos
      server.port=${NACOS_APPLICATION_PORT:8848}
      spring.datasource.platform=mysql
      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://192.168.56.101:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
      db.user=root
      db.password=123456
      ### The auth system to use, currently only 'nacos' is supported:
      nacos.core.auth.system.type=${NACOS_AUTH_SYSTEM_TYPE:nacos}
      
      
      ### The token expiration in seconds:
      nacos.core.auth.default.token.expire.seconds=${NACOS_AUTH_TOKEN_EXPIRE_SECONDS:18000}
      
      ### The default token:
      nacos.core.auth.default.token.secret.key=${NACOS_AUTH_TOKEN:SecretKey012345678901234567890123456789012345678901234567890123456789}
      
      ### 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}
      
      server.tomcat.accesslog.enabled=${TOMCAT_ACCESSLOG_ENABLED:false}
      server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D
      # default current work dir
      server.tomcat.basedir=
      ## spring security config
      ### turn off security
      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
      
      

      测试nacos

      1. 配置完成后,浏览器访问[你的ip]/8848/nacos 如图所示:

        image-20201231153547142

      2. 点击右边+号进行配置新增

        image-20201231153649190

      3. 查看数据库中config_info表,已经存储了新增的数据

      4. 获取配置

        curl -X GET "http://ip:8848/nacos/v1/cs/configs?dataId=test&group=DEFAULT_GROUP"
        
      5. 之后停掉nacos服务,从docker中删除nacos容器并重新部署,测试持久化是否成功

        # nacos 为启动时的 --name设置的值,或者直接使用容器id
        docker stop nacos
        docker rm [容器id]	
        
        #之后重新执行之前的启动nacos容器命令
        

        重新部署镜像后访问控制面板,创建的配置文件仍然存在,mysql持久化生效

  • 相关阅读:
    如何查看MySQL的当前存储引擎?
    转载mysql数据库配置优化
    redis教程
    基于 Android APP 安全测试流程
    移动APP安全测试
    自动化测试用例如何进行参数化
    分享一波免费的PPT模板下载网站
    UI自动化-滑块验证码识别 java版本
    安全测试博客汇总
    妙手回春——GRUB系统引导器恢复指南
  • 原文地址:https://www.cnblogs.com/FriendA1/p/14217328.html
Copyright © 2011-2022 走看看