使用docker在單機器上安裝nacos做集羣(docker-compose)

描述:通過docker在單機器上安裝3臺nacos做集羣,持久化操作使用單機mysql(暫未做主從)
docker安裝nacos詳細信息可參考官方文檔:

https://github.com/nacos-group/nacos-docker/blob/master/example/cluster-embedded.yaml(github)

https://nacos.io/zh-cn/docs/quick-start-docker.html(官網文檔)

nacos用mysql做持久化的SQL語句(來自官方):https://github.com/alibaba/nacos/blob/master/distribution/conf/nacos-mysql.sql

使用docker安裝單機版nacos : https://blog.csdn.net/qq_34497272/article/details/107129287

使用docker-compose進行安裝,若未安裝docker-compose可查考:https://blog.csdn.net/qq_34497272/article/details/107135174

Linux系統未安裝git,所以所需文件均爲個人新建,若有git可以自行在官網拉取

一、新建cluster-hostname.yaml(若拉取官網代碼則不需要新建)
個人將該文件放在了根目錄

touch cluster-hostname.yaml
以下未官網截圖,若已經拉取的官網代碼,則可以找到改文件 

二、新建custom.properties(若拉取官網代碼則不需要新建)
個人將該文件放在了根目錄

touch custom.properties
在該文件輸入 management.endpoints.web.exposure.include=* ,或者將官網的全部複製進去

以下爲官網代碼:

三、編輯yaml文件
若使用官網下載的代碼則需要將cluster-hostname.yaml下的部分內容對照修改,不要將下方yaml直接全盤複製

參數說明(可查看官網文檔:地址文章開頭有標註):

注意事項:

1、image鏡像按照個人實際配置

2、hostname和NACOS_SERVERS中保持一致

3、容器name區分開

4、持久化的數據庫根據個人實際配置(持久化目前支持mysql,對應的SQL文檔上面有官方地址,直接執行就好了)

5、/custom.properties,這個文件放在了根目錄。這個地址按照個人實際填寫。若使用官方代碼則無需操作

version: "3"
services:
  nacos1:
    hostname: nacos1
    container_name: nacos1 # 容器名
    image: nacos/nacos-server:latest #鏡像
    environment:
      - MODE=cluster # 集羣模式
      - NACOS_SERVERS=nacos1:8848 nacos2:8849 nacos3:8850
      - PREFER_HOST_MODE=hostname
      - SPRING_DATASOURCE_PLATFORM=mysql
      - MYSQL_MASTER_SERVICE_HOST=192.168.0.130 # mysql數據庫對應的ip
      - MYSQL_MASTER_SERVICE_PORT=3306    # mysql數據庫對應的端口
      - MYSQL_MASTER_SERVICE_DB_NAME=nacos_config
      - MYSQL_MASTER_SERVICE_USER=root
      - MYSQL_MASTER_SERVICE_PASSWORD=123456
      - MYSQL_DATABASE_NUM=1 # 數據源爲1個
      - JVM_XMS=128m
      - JVM_XMX=128m
      - JVM_XMN=128m
    volumes:
      - ./cluster-logs/nacos1:/home/nacos/logs
      - /custom.properties:/home/nacos/init.d/custom.properties # 注custom.properties放在了根目錄,所以爲/custom.properties,此處地址需要自行配置
    ports:
      - "8848:8848"
      - "9555:9555"
    restart: on-failure
 
  nacos2:
    hostname: nacos2
    image: nacos/nacos-server:latest #鏡像
    container_name: nacos2 #容器名
    environment:
      - MODE=cluster # 集羣模式
      - NACOS_SERVERS=nacos1:8848 nacos2:8849 nacos3:8850
      - PREFER_HOST_MODE=hostname
      - SPRING_DATASOURCE_PLATFORM=mysql
      - MYSQL_MASTER_SERVICE_HOST=192.168.0.130 # mysql數據庫對應的ip
      - MYSQL_MASTER_SERVICE_PORT=3306    # mysql數據庫對應的端口
      - MYSQL_MASTER_SERVICE_DB_NAME=nacos_config
      - MYSQL_MASTER_SERVICE_USER=root
      - MYSQL_MASTER_SERVICE_PASSWORD=123456
      - MYSQL_DATABASE_NUM=1 # 數據源爲1個
      - JVM_XMS=128m
      - JVM_XMX=128m
      - JVM_XMN=128m
    volumes:
      - ./cluster-logs/nacos2:/home/nacos/logs
      - /custom.properties:/home/nacos/init.d/custom.properties
    ports:
      - "8849:8848"
    restart: on-failure
    
  nacos3:
    hostname: nacos3
    image: nacos/nacos-server:latest #鏡像
    container_name: nacos3
    environment:
      - MODE=cluster # 集羣模式
      - NACOS_SERVERS=nacos1:8848 nacos2:8849 nacos3:8850
      - PREFER_HOST_MODE=hostname
      - SPRING_DATASOURCE_PLATFORM=mysql
      - MYSQL_MASTER_SERVICE_HOST=192.168.0.130 # mysql數據庫對應的ip
      - MYSQL_MASTER_SERVICE_PORT=3306    # mysql數據庫對應的端口
      - MYSQL_MASTER_SERVICE_DB_NAME=nacos_config
      - MYSQL_MASTER_SERVICE_USER=root
      - MYSQL_MASTER_SERVICE_PASSWORD=123456
      - MYSQL_DATABASE_NUM=1 # 數據源爲1個
      - JVM_XMS=128m
      - JVM_XMX=128m
      - JVM_XMN=128m
    volumes:
      - ./cluster-logs/nacos3:/home/nacos/logs
      - /custom.properties:/home/nacos/init.d/custom.properties
    ports:
      - "8850:8848"
    restart: on-failure
四、啓動
使用以下命令嘗試啓動,窗口關閉啓動的鏡像則會關閉,但是可以看到啓動日誌
docker-compose -f cluster-hostname.yaml up
若測試正常則可以進行後臺啓動
docker-compose -f cluster-hostname.yaml up -d
 執行docker-compose -f cluster-hostname.yaml up,正常啓動的日誌:

六、查看容器是否啓動
docker ps

————————————————
版權聲明:本文爲CSDN博主「郭咖啡」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_34497272/article/details/107135121

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章