使用Docker部署Nacos集群

本文详细介绍了如何通过Docker部署Nacos 2.1.1版本的集群,包括环境准备、数据库配置、镜像拉取、docker-compose配置及自定义网络,还涵盖了鉴权开启和部署注意事项。

近年来获得的成功可以分为三种:登录成功、下载成功、付款成功

官方链接

名称版本地址
Nacos官网2.1.1https://nacos.io/zh-cn/

部署步骤

0. 准备环境
  • 创建虚拟机
  • 安装docker
  • 安装docker-compose
  • Mysql数据库

自行百度,不再赘述

1. 创建 Nacos 数据库

初始化mysql数据库,数据库初始化文件:nacos-mysql.sql
该sql文件存在nacos安装包中,从安装包中找

2. docker 拉取 nacos镜像
docker pull nacos/nacos-server:v2.1.1
3. 创建目录
nacos-docker -- nacos集群的相关文件
	├── docker-compose.yml -- docker-compose 配置文件  
	├── master  -- nacos节点的相关文件
		   ├── application.properties -- naocs节点挂载的配置文件
		   ├── logs   -- nacos 节点挂载的日志文件夹
	├── slave1  -- nacos节点的相关文件
		   ├── application.properties -- naocs节点挂载的配置文件
		   ├── logs   -- nacos 节点挂载的日志文件夹
	├── slave2  -- nacos节点的相关文件
		   ├── application.properties -- naocs节点挂载的配置文件
		   ├── logs   -- nacos 节点挂载的日志文件夹
4. application.properties

server.servlet.contextPath=/nacos

server.error.include-message=ON_PARAM
# 端口号
server.port=8848

# 数据库信息的配置
pring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?useUnicode=true&characterEncoding=utf8&useSSL=false
db.user=root
db.password=root

# 以下为默认配置,暂时不用管
### Connection pool configuration: hikariCP
db.pool.config.connectionTimeout=30000
db.pool.config.validationTimeout=10000

nacos.naming.empty-service.auto-clean=true
nacos.naming.empty-service.clean.initial-delay-ms=50000
nacos.naming.empty-service.clean.period-time-ms=30000

management.metrics.export.elastic.enabled=false

management.metrics.export.influx.enabled=false

server.tomcat.accesslog.enabled=true

### The access log pattern:
server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D %{User-Agent}i %{Request-Source}i

server.tomcat.basedir=file:.

nacos.core.auth.system.type=nacos

nacos.core.auth.enabled=false

nacos.core.auth.caching.enabled=true

nacos.core.auth.enable.userAgentAuthWhite=false

nacos.core.auth.server.identity.key=serverIdentity
nacos.core.auth.server.identity.value=security

### The token expiration in seconds:
nacos.core.auth.plugin.nacos.token.expire.seconds=18000
### The default token:
nacos.core.auth.plugin.nacos.token.secret.key=SecretKey012345678901234567890123456789012345678901234567890123456789

cos.istio.mcp.server.enabled=false
5. Docker中自定义网络

创建集群你需要知道 IP 吧,那么怎么给启动的容器指定 IP 呢?我们就需要自定义网络

docker network create --driver bridge --subnet 172.20.0.0/16 --gateway 172.20.0.1 cloud_net
6. docker-compose.yml
version : '3.8'
services:
  nacos-master:
    # 容器名称
    container_name: nacos-master
    # 镜像
    image: nacos/nacos-server:v2.1.1
    environment:
      # 集群节点
      - NACOS_SERVERS=172.20.0.2:8848 172.20.0.3:8848 172.20.0.4:8848
    volumes:
      # 文件挂载
      - ./master/logs/:/home/nacos/logs
      - ./master/application.properties:/home/nacos/conf/application.properties
    ports:
      # 端口映射
      - "8848:8848"
      - "9848:9848"
      - "9849:9849"
      # 指定网络,IP
    networks:
      cloud_net:
        ipv4_address: 172.20.0.2

  nacos-slave1:
    container_name: nacos-slave1
    image: nacos/nacos-server:v2.1.1
    environment:
      - NACOS_SERVERS=172.20.0.2:8848 172.20.0.3:8848 172.20.0.4:8848
    volumes:
      - ./slave1/logs/:/home/nacos/logs
      - ./slave1/application.properties:/home/nacos/conf/application.properties
    ports:
      - 8850:8848
      - 9850:9848
      - 9851:9849
    networks:
      cloud_net:
        ipv4_address: 172.20.0.3

  nacos-slave2:
    container_name: nacos-slave2
    image: nacos/nacos-server:v2.1.1
    environment:
      - NACOS_SERVERS=172.20.0.2:8848 172.20.0.3:8848 172.20.0.4:8848
    volumes:
      - ./slave2/logs/:/home/nacos/logs
      - ./slave2/application.properties:/home/nacos/conf/application.properties
    ports:
      - "8852:8848"
      - "9852:9848"
      - "9853:9849"
    networks:
      cloud_net:
        ipv4_address: 172.20.0.4
# 指定使用已经创建的网络
networks:
  default:
    external:
      name: cloud_net
  cloud_net:
    external: true
7. 创建容器
# -d 后台运行
docker-compose up -d

其他命令

# 关闭
docker-compose stop
# 运行
docker-compose start
# 删除
docker-compose rm
8. 开启鉴权
# 在 application.properties 将 nacos.core.auth.enabled 设为 true
nacos.core.auth.system.type=nacos
nacos.core.auth.enabled=true

修改完配置后不是立即生效,需要将容器重启

docker-compose restart

部署注意点

  1. docker搭建nacos集群,挂载 cluster.conf 文件不起作用。需要在 docker-compose.yml 文件中配置集群的节点

    version : '3.8'
    services:
      nacos-master:
        environment:
          # 配置集群的节点
          - NACOS_SERVERS=172.20.0.2:8848 172.20.0.3:8848 172.20.0.4:8848
    
  2. 指定网络与IP,关键配置

    version : '3.8'
    services:
      nacos-master:
        networks:
          cloud_net:
            ipv4_address: 172.20.0.4
    # 指定使用已经创建的网络
    networks:
      default:
        external:
          name: cloud_net
      cloud_net:
        external: true
    
  3. 通用配置连接
    例如,内存大小,集群地址,数据库链接
    https://nacos.io/zh-cn/docs/quick-start-docker.html

成功截图

请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值