docker部署nacos集群并配置mysql8

一、安装docker

linux系统下安装docker参考文章:https://www.jianshu.com/p/a217829aa32e

二、docker 拉取nacos镜像

docker pull nacos/nacos-server

三、启动nacos容器

单机部署

docker run -d --name nacos -p 8848:8848 --restart=always -e JVM_XMS=256m -e JVM_XMX=256m -e MODE=standalone -e SPRING_DATASOURCE_PLATFORM=mysql -e MYSQL_SERVICE_HOST=47.243.138.3 -e MYSQL_SERVICE_PORT=3306 -e MYSQL_SERVICE_DB_NAME=nacos -e MYSQL_SERVICE_USER=root -e MYSQL_SERVICE_PASSWORD=Root@2021 -e MYSQL_SERVICE_DB_PARAM="characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC" nacos/nacos-server

集群部署

docker run -d --name nacos -p 8848:8848 --restart=always -e JVM_XMS=256m -e JVM_XMX=256m -e MODE=cluster -e NACOS_APPLICATION_PORT=8848 -e NACOS_SERVERS=121.4.53.209:8848,120.48.21.24:8848 -e NACOS_SERVER_IP=121.4.53.209 -e SPRING_DATASOURCE_PLATFORM=mysql -e MYSQL_SERVICE_HOST=47.243.138.3 -e MYSQL_SERVICE_PORT=3306 -e MYSQL_SERVICE_DB_NAME=nacos -e MYSQL_SERVICE_USER=root -e MYSQL_SERVICE_PASSWORD=Root@2021 -e MYSQL_SERVICE_DB_PARAM="characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC" nacos/nacos-server

四、启动配置说明

docker run -d \ # -d表示是后台运行
--name nacos8846 \ # 给容器起个名字
-p 8848:8848 \ # 容器外部端口映射
-e MODE=cluster \ # 以集群模式运行 stalone 单机模式运行
-e NACOS_APPLICATION_PORT=8848 \ # 这台Nacos服务的port是8848
-e NACOS_SERVERS=192.168.100.132:8846,192.168.100.132:8847,192.168.100.132:8848 \ # Nacos集群的所有机器的信息
-e NACOS_SERVER_IP=192.168.100.132 \ # 这台Nacos服务的IP
-e SPRING_DATASOURCE_PLATFORM=mysql \ # 使用外置MySQL存储配置信息
-e MYSQL_SERVICE_HOST=192.168.100.132 \ # 外置MySQL的IP
-e MYSQL_SERVICE_PORT=3306 \ # 外置MySQL的port
-e MYSQL_SERVICE_USER=root \ # 外置MySQL的用户名
-e MYSQL_SERVICE_PASSWORD=123456 \ # 外置MySQL的密码
-e MYSQL_SERVICE_DB_NAME=nacos_config \ # 外置MySQL的数据库,也就是Nacos的配置文件要存储得到哪个数据库
-e MYSQL_SERVICE_DB_PARAM="characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC" \ #mysql8数据库连接配置
nacos/nacos-server:1.3.2 # 运行哪个镜像

五、springboot nacos集群配置

spring:
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.0.1:8848,192.168.0.2:8848,192.168.0.3:8848
## 这么配置完全是可以的,但是如果Nacos换了ip或者整体要做迁移,那么所有使用这个Nacos的微服务的配置文件中的ip全都要进行更换,还需要重启,这对于整个微服务架构来讲耦合会非常大,违背了服务拆分的原则。

六、nginx代理转发配置nacos集群

修改nginx配置文件 可以参考docker配置nginx(https://www.jianshu.com/p/543fad51d6eb)

upstream cluster {
    server 192.168.0.1:8848;
    server 192.168.0.2:8848;
    server 192.168.0.3:8848;
}
server {
        listen       80;
        server_name  127.0.0.1;
        charset koi8-r;
        access_log  logs/host.access.log  main;
        location / {
          proxy_pass http://cluster;
        }
}

修改springboot中的nacos配置

spring:
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.100.132:80 # 指向Nginx,由Nginx进行转发(nginx下部署了3台Nacos集群)

你可能感兴趣的:(docker部署nacos集群并配置mysql8)