docker-compose搭建nacos集群

一、新建数据库zj_nacos_config(持久化nacos配置

数据库名字自己取,建表sql去nacos官方找 

二、创建目录

cd /

mkdir docker/alibaba/nacos

cd docker/alibaba/nacos

三、docker-compose.yml

172.50.2.40:

version: "3.9"
 
services:
  nacos:
    container_name: nacos-server01
    hostname: nacos-server01
    image: nacos/nacos-server:v2.2.0
    environment:
      - MODE=cluster
      - PREFER_HOST_MODE=hostname
      - NACOS_SERVERS=nacos-server01:8848 nacos-server02:8848 nacos-server03:8848
      - SPRING_DATASOURCE_PLATFORM=mysql
      - MYSQL_SERVICE_HOST=172.50.2.139
      - MYSQL_SERVICE_PORT=3306
      - MYSQL_SERVICE_USER=root
      - MYSQL_SERVICE_PASSWORD=123456
      - MYSQL_SERVICE_DB_NAME=zj_nacos_config
      - JVM_XMS=512m
      - JVM_XMX=512m
      - JVM_XMN=256m
      - JVM_MS=64m
      - JVM_MMS=128m
    volumes:
      - ./logs:/home/nacos/logs
      - ./init.d/custom.properties:/home/nacos/init.d/custom.properties
    ports:
      - 8848:8848
      - 9848:9848
      - 9849:9849
      - 9555:9555
    extra_hosts:
       # master_1容器可以使用的host访问nacos-server02 nacos-server03
      - nacos-server02:172.50.2.41
      - nacos-server03:172.50.2.42
    privileged: true
    network_mode: "host"
    restart: always

172.50.2.41:

version: "3.9"
 
services:
  nacos:
    container_name: nacos-server02
    hostname: nacos-server02
    image: nacos/nacos-server:v2.2.0
    environment:
      - MODE=cluster
      - PREFER_HOST_MODE=hostname
      - NACOS_SERVERS=nacos-server01:8848 nacos-server02:8848 nacos-server03:8848
      - SPRING_DATASOURCE_PLATFORM=mysql
      - MYSQL_SERVICE_HOST=172.50.2.139
      - MYSQL_SERVICE_PORT=3306
      - MYSQL_SERVICE_USER=root
      - MYSQL_SERVICE_PASSWORD=123456
      - MYSQL_SERVICE_DB_NAME=zj_nacos_config
      - JVM_XMS=512m
      - JVM_XMX=512m
      - JVM_XMN=256m
      - JVM_MS=64m
      - JVM_MMS=128m
    volumes:
      - ./logs:/home/nacos/logs
      - ./init.d/custom.properties:/home/nacos/init.d/custom.properties
    ports:
      - 8848:8848
      - 9848:9848
      - 9849:9849
      - 9555:9555
    extra_hosts:
       # master_1容器可以使用的host访问nacos-server02 nacos-server03
      - nacos-server01:172.50.2.40
      - nacos-server03:172.50.2.42
    privileged: true
    network_mode: "host"
    restart: always

172.50.2.42:

version: "3.9"
 
services:
  nacos:
    container_name: nacos-server03
    hostname: nacos-server03
    image: nacos/nacos-server:v2.2.0
    environment:
      - MODE=cluster
      - PREFER_HOST_MODE=hostname
      - NACOS_SERVERS=nacos-server01:8848 nacos-server02:8848 nacos-server03:8848
      - SPRING_DATASOURCE_PLATFORM=mysql
      - MYSQL_SERVICE_HOST=172.50.2.139
      - MYSQL_SERVICE_PORT=3306
      - MYSQL_SERVICE_USER=root
      - MYSQL_SERVICE_PASSWORD=123456
      - MYSQL_SERVICE_DB_NAME=zj_nacos_config
      - JVM_XMS=512m
      - JVM_XMX=512m
      - JVM_XMN=256m
      - JVM_MS=64m
      - JVM_MMS=128m
    volumes:
      - ./logs:/home/nacos/logs
      - ./init.d/custom.properties:/home/nacos/init.d/custom.properties
    ports:
      - 8848:8848
      - 9848:9848
      - 9849:9849
      - 9555:9555
    extra_hosts:
       # master_1容器可以使用的host访问nacos-server02 nacos-server03
      - nacos-server01:172.50.2.40
      - nacos-server02:172.50.2.41
    privileged: true
    network_mode: "host"
    restart: always

注意:一定要开放- 9849:9849端口,因为nacos2.x之后集群靠这个端口通信,不开启的画,你的服务就会随机注册到某一台机子,不会复制

​​​​​​​

 

启动:

docker-compose up -d

四、防火墙

# 查看防火墙
systemctl status firewalld
 
# 查看8848端口是否打开【no/yes】
firewall-cmd --zone=public --query-port=8848/tcp
 
#批量添加多个端口
firewall-cmd --permanent --add-port=8848/tcp --add-port=9848/tcp --add-port=9849/tcp --add-port=9555/tcp
 
# 防火墙重载
firewall-cmd --reload
 
# 再次查看8848状态 【yes】
firewall-cmd --zone=public --query-port=8848/tcp

五、访问验证

172.50.2.40:8848/nacos (此时还没用nginx做代理,所以三个网址需要分别访问)

六、集成nginx集群+keepalived

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值