使用docker部署Nacos


使用docker部署Nacos

操作步驟

這里說的也是單機版部署教程

docker start nacos

用起來非常簡單, 每次需要用到執行上面的命令即可.

打開nacos控制台 http://ip:8848/nacos

docker run部署

  • 獲取鏡像
docker pull nacos/nacos-server
docker run --env MODE=standalone --name nacos -d -p 8848:8848 nacos/nacos-server
docker exec -it <CONTAINER ID> bash
vim conf/application.properties
// 修改對應mysql參數
docker restart nacos/nacos-server                                               
docker restart <CONTAINER ID>                                                             

對應參數:

name description option
MODE cluster模式/standalone模式 cluster/standalone default cluster
NACOS_SERVERS nacos cluster地址 eg. ip1,ip2,ip3
PREFER_HOST_MODE 是否支持hostname hostname/ip default ip
NACOS_SERVER_PORT nacos服務器端口 default 8848
NACOS_SERVER_IP 多網卡下的自定義nacos服務器IP
SPRING_DATASOURCE_PLATFORM standalone 支持 mysql mysql / empty default empty
MYSQL_MASTER_SERVICE_HOST mysql 主節點host
MYSQL_MASTER_SERVICE_PORT mysql 主節點端口 default : 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從節點端口 default :3306
MYSQL_DATABASE_NUM 數據庫數量 default :2
JVM_XMS -Xms default :2g
JVM_XMX -Xmx default :2g
JVM_XMN -Xmn default :1g
JVM_MS -XX:MetaspaceSize default :128m
JVM_MMS -XX:MaxMetaspaceSize default :320m
NACOS_DEBUG 開啟遠程調試 y/n default :n
TOMCAT_ACCESSLOG_ENABLED server.tomcat.accesslog.enabled default :false

docker-compose up部署

  • Clone 項目

    git clone https://github.com/nacos-group/nacos-docker.git
    cd nacos-docker
    
  • 修改mysql配置

## \nacos-docker\env\nacos-standlone-mysql.env
PREFER_HOST_MODE=hostname
MODE=standalone
SPRING_DATASOURCE_PLATFORM=mysql
MYSQL_SERVICE_HOST=192.168.31.219
MYSQL_SERVICE_DB_NAME=barm_nacos
MYSQL_SERVICE_PORT=3306
MYSQL_SERVICE_USER=root
MYSQL_SERVICE_PASSWORD=123456
  • 初始化nacos數據庫

    初始化nacos數據sql

  • 修改standalone-mysql.yaml

注釋掉mysql,prometheus,grafana(健康相關的暫時用不上)

version: "2"
services:
  nacos:
    image: nacos/nacos-server:latest
    container_name: nacos-standalone-mysql
    env_file:
      - ../env/nacos-standlone-mysql.env
    volumes:
      - ./standalone-logs/:/home/nacos/logs
      - ./init.d/custom.properties:/home/nacos/init.d/custom.properties
    ports:
      - "8848:8848"
      - "9555:9555"
    # depends_on:
    #   - mysql
    restart: on-failure
  # mysql:
  #   container_name: mysql
  #   image: mysql:5.7.29
  #   env_file:
  #     - ../env/mysql.env
  #   volumes:
  #     - ./mysql:/var/lib/mysql
  #   ports:
  #     - "3306:3306"
  # prometheus:
  #   container_name: prometheus
  #   image: prom/prometheus:latest
  #   volumes:
  #     - ./prometheus/prometheus-standalone.yaml:/etc/prometheus/prometheus.yml
  #   ports:
  #     - "9090:9090"
  #   depends_on:
  #     - nacos
  #   restart: on-failure
  # grafana:
  #   container_name: grafana
  #   image: grafana/grafana:latest
  #   ports:
  #     - 3000:3000
  #   restart: on-failure
  • 單機模式 Mysql

    docker-compose -f example/standalone-mysql.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/instances?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"
    

Common property configuration

name description option
MODE cluster模式/standalone模式 cluster/standalone default cluster
NACOS_SERVERS nacos cluster地址 eg. ip1,ip2,ip3
PREFER_HOST_MODE 是否支持hostname hostname/ip default ip
NACOS_SERVER_PORT nacos服務器端口 default 8848
NACOS_SERVER_IP 多網卡下的自定義nacos服務器IP
SPRING_DATASOURCE_PLATFORM standalone 支持 mysql mysql / empty default empty
MYSQL_MASTER_SERVICE_HOST mysql 主節點host
MYSQL_MASTER_SERVICE_PORT mysql 主節點端口 default : 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從節點端口 default :3306
MYSQL_DATABASE_NUM 數據庫數量 default :2
JVM_XMS -Xms default :2g
JVM_XMX -Xmx default :2g
JVM_XMN -Xmn default :1g
JVM_MS -XX:MetaspaceSize default :128m
JVM_MMS -XX:MaxMetaspaceSize default :320m
NACOS_DEBUG 開啟遠程調試 y/n default :n
TOMCAT_ACCESSLOG_ENABLED server.tomcat.accesslog.enabled default :false

Nacos + Grafana + Prometheus

有興趣可以看看這個:

參考:Nacos監控指南

Note: grafana創建一個新數據源時,數據源地址必須是 http://prometheus:9090

上傳阿里雲docker私有鏡像

登錄阿里雲創建自己對應的倉庫

docker login --username=username registry.cn-aliyuncs.com
docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/username/barm-nacos:[鏡像版本號]
docker push registry.cn-hangzhou.aliyuncs.com/allenalan/barm-nacos:[鏡像版本號]

好了就這些, 歡迎關注,評論,點贊, 轉發~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM