Linux Docker搭建Nacos 集群

18 篇文章 1 订阅

第一种方式:

集群节点(Nacos内存占用默认2G)

106.15.38.88:8848(mysql + nacos)

106.15.38.88:8858 (nacos)

106.15.38.88:8868 (nacos)

我这里是用一台云服务器通过docker来搭建,如果是多台服务器,IP、端口修改即可,通用。

1.MySQL(支持8.0)

Docker搭建MySQL

注:需要提前创建nacos_config数据库并导入SQL文件,创建连接用户nacos

SQL文件地址: https://github.com/alibaba/nacos/blob/master/distribution/conf/nacos-mysql.sql

2.启动各Nacos节点 

下载镜像

docker search nacos

docker pull nacos/nacos-server

运行镜像

106.15.38.88:8848

docker run -d \
--net=host \   #这里设置了网络模式,如果单台部署三个nacos,后面几台去掉或修改
--restart=unless-stopped \
--name nacos-server \
--env PREFER_HOST_MODE=hostname \
--env MODE=cluster \
--env NACOS_SERVERS=106.15.38.88:8848,106.15.38.88:8858,106.15.38.88:8868 \
--env NACOS_SERVER_IP=106.15.38.88 \
--env SPRING_DATASOURCE_PLATFORM=mysql \
--env MYSQL_SERVICE_HOST=106.15.38.88 \
--env MYSQL_SERVICE_DB_NAME=nacos_config \
--env MYSQL_SERVICE_USER=nacos \
--env MYSQL_SERVICE_PASSWORD=nacos \
-p 8848:8848 \
nacos/nacos-server


## 注意\前的空格

106.15.38.88:8858

docker run -d \
--restart=unless-stopped \
--name nacos-server8858 \
--env PREFER_HOST_MODE=hostname \
--env MODE=cluster \
--env NACOS_SERVERS=106.15.38.88:8848,106.15.38.88:8858,106.15.38.88:8868 \
--env NACOS_SERVER_IP=106.15.38.88 \
--env SPRING_DATASOURCE_PLATFORM=mysql \
--env MYSQL_SERVICE_HOST=106.15.38.88 \
--env MYSQL_SERVICE_DB_NAME=nacos_config \
--env MYSQL_SERVICE_USER=nacos \
--env MYSQL_SERVICE_PASSWORD=nacos \
-p 8858:8848 \
nacos/nacos-server

##注意 我去掉了 --net=host,如果是多台服务器,不用去掉
## 注意name 命名、端口号

单台启动第二个,如果不去掉了 --net=host 报:

WARNING: Published ports are discarded when using host network mode

 这台是无法正常运行的,也可以使用docker的其他网络模式,例如--network=bridge;

docker的网络模式:

   bridge模式: Docker的默认设置

   host模式

   none模式

   container模式: 使用时要指定容器名

   overlay模式

106.15.38.88:8868

docker run -d \
--restart=unless-stopped \
--name nacos-server8868 \
--env PREFER_HOST_MODE=hostname \
--env MODE=cluster \
--env NACOS_SERVERS=106.15.38.88:8848,106.15.38.88:8858,106.15.38.88:8868 \
--env NACOS_SERVER_IP=106.15.38.88 \
--env SPRING_DATASOURCE_PLATFORM=mysql \
--env MYSQL_SERVICE_HOST=106.15.38.88 \
--env MYSQL_SERVICE_DB_NAME=nacos_config \
--env MYSQL_SERVICE_USER=nacos \
--env MYSQL_SERVICE_PASSWORD=nacos \
-p 8868:8848 \
nacos/nacos-server

##注意 我去掉了 --net=host,如果是多台服务器,不用去掉
## 注意name 命名、端口号

3.搭建完成

默认账号密码是nacos/nacos

访问任意节点地址:http://ip:8848/nacos

第二种方式:配置文件

这次以三台服务器来配置(也可以在一台服务器上配置,文件可以共用)

106.15.38.88:8848

106.15.38.89:8848

106.15.38.90:8848

1、每个节点创建Nacos的工作目录,路径自定

mkdir -p /root/dev/docker/nacos-server
mkdir -p /root/dev/docker/nacos-server/env
mkdir -p /root/dev/docker/nacos-server/logs
mkdir -p /root/dev/docker/nacos-server/init.d

2、配置custom.properties,vim /root/dev/docker/nacos-server/init.d/custom.properties

#spring.security.enabled=false
#management.security=false
#security.basic.enabled=false
#nacos.security.ignore.urls=/**
#management.metrics.export.elastic.host=http://localhost:9200
# metrics for prometheus
management.endpoints.web.exposure.include=*

# metrics for elastic search
#management.metrics.export.elastic.enabled=false
#management.metrics.export.elastic.host=http://localhost:9200

# metrics for influx
#management.metrics.export.influx.enabled=false
#management.metrics.export.influx.db=springboot
#management.metrics.export.influx.uri=http://localhost:8086
#management.metrics.export.influx.auto-create-db=true
#management.metrics.export.influx.consistency=one
#management.metrics.export.influx.compressed=true

3、配置nacos-hostname.env , vim /root/dev/docker/nacos-server/env/nacos-hostname.env

#nacos dev env
# 首选主机模式
PREFER_HOST_MODE=hostname
# 当前主机的IP,注意修改
NACOS_SERVER_IP=106.15.38.88
# 集群的各个节点
NACOS_SERVERS=106.15.38.88:8848 106.15.38.89:8848 106.15.38.90:8848
# 数据库的配置
MYSQL_SERVICE_HOST=106.15.38.88
MYSQL_SERVICE_DB_NAME=nacos
MYSQL_SERVICE_PORT=3306
MYSQL_SERVICE_USER=nacos
MYSQL_SERVICE_PASSWORD=nacos

# 从节点 这里就使用单节点测试,因此就不配置从节点
#MYSQL_SLAVE_SERVICE_HOST=xxx 
#MYSQL_SLAVE_SERVICE_PORT=3306

# JVM参数 默认是2G 如果使用虚拟机,内存没有2G,就需要调整这里的参数,否则将无法启动
JVM_XMS=256m
JVM_XMX=256m
JVM_XMN=256m

4、将配置文件拷贝到其他两台机器,注意修改nacos-hostname.env文件的主机IP

scp -r /root/dev/docker/nacos-server/env/nacos-hostname.env  root@106.15.38.89:/root/dev/docker/nacos-server/env/nacos-hostname.env
scp -r /root/dev/docker/nacos-server/env/nacos-hostname.env  root@106.15.38.90:/root/dev/docker/nacos-server/env/nacos-hostname.env

scp -r /root/dev/docker/nacos-server/init.d/custom.properties  root@106.15.38.89:/root/dev/docker/nacos-server/init.d/custom.properties
scp -r /root/dev/docker/nacos-server/init.d/custom.properties  root@106.15.38.90:/usr/local/docker/nacos-server/init.d/custom.properties

5、docker启动(3个节点)

docker run \
-p 8848:8848 \
--restart=always \
--name nacos-server \
--env-file=/root/dev/docker/nacos-server/env/nacos-hostname.env \
-v /root/dev/docker/nacos-server/logs:/home/nacos/logs \
-v /root/dev/docker/nacos-server/init.d/custom.properties:/home/nacos/init.d/custom.properties \
-d nacos/nacos-server

启动完成。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值