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

猜你喜欢

转载自blog.csdn.net/qq_41369135/article/details/131726971