使用docker部署Nacos
#拉取鏡像 docker pull nacos/nacos server
docker run -d --name nacos -p 8848:8848 -e PREFER_HOST_MODE=192.168.30.189 -e MODE=standalone nacos/nacos-server
其中參數PREFER_HOST_MODE填入服務器Ip
自行配置MySQL 執行命令如下:
docker run -d \
-e PREFER_HOST_MODE=hostname \
-e MODE=standalone \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST={mysqlIp} \
-e MYSQL_SERVICE_PORT={mysqlPort} \
-e MYSQL_SERVICE_USER={mysql用戶名} \
-e MYSQL_SERVICE_PASSWORD={mysql用戶密碼} \
-e MYSQL_SERVICE_DB_NAME={mysql數據庫名} \
-p 8848:8848 \
--name nacos-standalone-mysql \
--restart=always \
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:[鏡像版本號]