1. 程式人生 > 其它 >Docker:docker部署Nacos(單例與叢集)並配置自定義Mysql

Docker:docker部署Nacos(單例與叢集)並配置自定義Mysql

1. 拉取Nacos映象

下載nacos映象

#預設拉取最新的Nacos映象
docker pull nacos/nacos-server

 2. 啟動Nacos服務

  • 單例容器建立

    1. 建立簡單的單例Nacos服務

# 啟動容器
docker run -d --name nacos -p 8848:8848 -e PREFER_HOST_MODE=hostname -e MODE=standalone -t nacos/nacos-server

    2. Nacos容器生成可配引數表

Nacos配置引數

引數描述

引數可選值域

預設值

MODE

cluster模式/standalone模式

cluster/standalone 

cluster 

NACOS_SERVERS

nacos cluster地址

ip1 ip2 ip3

示例:

NACOS_SERVERS="nacos1-ip:8848 nacos2-ip:8848 nacos3-ip:8848"

PREFER_HOST_MODE

是否支援hostname 

 hostname/ip

ip 

NACOS_SERVER_PORT

nacos伺服器埠 

 

8848 

NACOS_SERVER_IP

 多網絡卡下的自定義nacos伺服器IP

 

 

SPRING_DATASOURCE_PLATFORM

MODE的配置引數(standalone) 支援 mysql 

 mysql/empty

empty 

MYSQL_MASTER_SERVICE_HOST

mysql 主節點host 

 

示例:

MYSQL_SERVICE_HOST=119.90.153.96

MYSQL_MASTER_SERVICE_PORT

 mysql 主節點埠

 

 3306

MYSQL_MASTER_SERVICE_DB_NAME

mysql 主節點資料庫 

 

指定nacos庫表:

MYSQL_SERVICE_DB_NAME=nacos

MYSQL_MASTER_SERVICE_USER

 資料庫使用者名稱

 

 

MYSQL_MASTER_SERVICE_PASSWORD

 資料庫密碼

 

 

MYSQL_SLAVE_SERVICE_HOST

mysql從節點host 

 

 

MYSQL_SLAVE_SERVICE_PORT

mysql從節點埠 

 

 3306

MYSQL_DATABASE_NUM

 資料庫數量

 

JVM_XMS

JVM虛擬機器設定-Xms 

 

 2g

JVM_XMX

 JVM虛擬機器設定-Xmx

 

 2g

JVM_XMN

 JVM虛擬機器設定-Xmn

 

 1g

JVM_MS

JVM虛擬機器設定-XX:MetaspaceSize  

 

 128m

JVM_MMS

 JVM虛擬機器設定-XX:MaxMetaspaceSize 

 

 320m

NACOS_DEBUG

開啟遠端除錯 

 y/n

TOMCAT_ACCESSLOG_ENABLED

server.tomcat.accesslog.enabled 

 

 false

    3. Nacos服務訪問地址

      地址:http://ip:8848/nacos 賬號:nacos 密碼:nacos

  • 叢集容器搭建

    1. 建立Nacos-1容器

docker run -it \
-e PREFER_HOST_MODE=ip \
-e MODE=cluster \
-e NACOS_SERVERS="172.18.1.42:8848 172.18.1.43:8848" \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=172.18.1.30 \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_DB_NAME=nacos \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=password \
-p 9901:8848 \
--name nacos01 \
--net mynet --ip 172.18.1.41 \
--restart=always \
nacos/nacos-server

    2. 建立Nacos-2容器

docker run -it \
-e PREFER_HOST_MODE=ip \
-e MODE=cluster \
-e NACOS_SERVERS="172.18.1.41:8848 172.18.1.43:8848" \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=172.18.1.30 \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_DB_NAME=nacos \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=root123 \
-p 9902:8848 \
--name nacos02 \
--net mynet --ip 172.18.1.42 \
--restart=always \
nacos/nacos-server

    3. 檢視到叢集中有多少臺伺服器

    4. 實現Nginx搭建負載均衡

      1) 為什麼要實現反向代理?

           因為一個叢集中兩臺服務之間沒有聯絡,必須給這兩臺服務進行建立聯絡,才能登一個賬號可以進行同步操作。

      2) 修改Nginx的配置檔案 defalut.conf

upstream nacosList {
    server 172.18.1.41:8848 weight=1;
    server 172.18.1.42:8848 weight=2;
}

server {
    listen  80;
    server_name  www.zking.com;

    location / {
        root   /etc/nginx/html/;
        index  index.html index.htm;
    }

    error_page   500 502 503 504  /50x.html;

    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    location /nacos {
        proxy_pass  http://nacosList;
    }

}

      3)生成Nginx容器

docker run -itd \
--name nginx \
--net mynet \
-v /home/nginx/conf.d:/etc/nginx/conf.d \ -v /home/nginx/html:/etc/nginx/html \ -v /home/nginx/log:/usr/log/nginx \ -p 8080:80 \ nginx

       4) 訪問Nginx的地址

        地址 http://localhost:80/nacos

 

 

文章整合至:https://blog.csdn.net/qq_34807429/article/details/103779305https://blog.csdn.net/m0_53151031/article/details/123118920https://copyfuture.com/blogs-details/20200117121620859lkygduriq48ayjc