docker部署nacos及配置、使用

本文详细介绍了如何使用Docker部署Nacos的单体和集群模式,包括启动服务、配置负载均衡以及设置鉴权。同时,还讲解了如何在SpringCloud应用中集成Nacos配置中心并实现动态刷新。
摘要由CSDN通过智能技术生成

目录

前言

一、单体部署

二、集群部署

2.1、启动服务

2.2、使用nginx实现负载

三、配置

3.1、设置鉴权

3.2、配置中心使用详解

总结

前言

最近在做nacos配置中心的功能,之前公司只用了注册中心,在这里做下总结。

一、单体部署

docker run -itd --name 容器名称 \
--network=定义网络 \
--ip 定义网络IP \
-p 7848:7848 \
-p 8848:8848 \
-p 9848:9848 \
-p 9849:9849 \
--restart=always \
-e TZ=Asia/Shanghai \
-e PREFER_HOST_MODE=本机IP \
-e NACOS_SERVER_IP=本机IP \
-e MODE=standalone \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=数据库网络IP\
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_DB_NAME=nacos数据库名称 \
-e MYSQL_SERVICE_USER=数据库用户 \
-e MYSQL_SERVICE_PASSWORD=数据库密码 \
nacos/nacos-server:v2.2.0

二、集群部署

2.1、启动服务

集群应该最少3台机器

docker run -itd --name 容器名称 \
--network=定义网络 \
--ip 定义网络IP \
-p 7848:7848 \
-p 8848:8848 \
-p 9848:9848 \
-p 9849:9849 \
--restart=always \
-e TZ=Asia/Shanghai \
-e PREFER_HOST_MODE=本机IP \
-e NACOS_SERVER_IP=本机IP \
-e MODE=cluster \
-e NACOS_SERVERS="集群所有主机:端口空格分隔" \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=数据库网络IP\
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_DB_NAME=nacos数据库名称 \
-e MYSQL_SERVICE_USER=数据库用户 \
-e MYSQL_SERVICE_PASSWORD=数据库密码 \
nacos/nacos-server:v2.2.0

2.2、使用nginx实现负载

1、启动nginx容器
docker run -itd --name nacos-nginx \
--network=定义网络 --ip 定义网络IP -p 10010:80 \
-v /usr/local/nacos-nginx/conf.d:/etc/nginx/conf.d \
-v /usr/local/nacos-nginx/html:/etc/nginx/html \
-v /usr/local/nacos-nginx/log:/usr/log/nginx \
nginx

2、修改nginx配置文件
cd /usr/local/nacos-nginx/conf.d
vim defalut.conf

填写以下内容:
upstream nacosList {
    server 结点1IP:端口 weight=1;
    server 结点2IP:端口 weight=1;
    server 结点3IP:端口 weight=1;
}

server {
    listen  80;
    server_name  localhost;

    location / {
        root   /etc/nginx/html/;
        index  index.html index.htm;
    }

    error_page   500 502 503 504  /50x.html;

    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    location /nacos {
        proxy_pass  http://nacosList/nacos;
    }
}

3、重启容器
docker restart nacos-nginx

三、配置

导入数据库略,默认账号密码为nacos/nacos

3.1、设置鉴权

修改/usr/local/nacos/conf/application.properties
1.开启鉴权
修改 nacos.core.auth.enabled 为true
nacos.core.auth.enabled=true
2.自定义秘钥
nacos.core.auth.plugin.nacos.token.secret.key=VGhpc0lzTXlDdXN0b21TZWNyZXRLZXkwMTIzNDU2Nzg=
3.开启服务身份识别功能-可选
服务间通信
nacos.core.auth.server.identity.key=example
nacos.core.auth.server.identity.value=example
所有集群均需要配置相同的server.identity信息

重启nacos
docker restart nacos容器名称

3.2、配置中心使用详解

1、添加依赖
<!--nacos配置管理依赖-->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
2、删除application.yml ,添加bootstrap.yml
注意:配置文件=prefix-active.file-extension 区分大小写
spring:
  profiles:
    active: dev
  cloud:
    nacos:
      #配置中心
      config:
        server-addr: nacosIP:端口
        username: 账号
        password: 密码
        #前缀名称
        prefix: 配置文件前缀
        file-extension: yaml # 文件后缀名
3、动态刷新配置
配置动态刷新
配置类上加
@RefreshScope
配置@bean上加
@Primary
@RefreshScope
@Primary注解表示spring会优先IOC此DataSource,使得spring容器能够优先托管自定义的DataSource注入。
Nacos配置自动刷新机制不支持动态刷新静态化配置,即配置项的值在启动时已经确定且不可更改。
例如 
spring.application.name
server.port

总结

本文归纳总结了docker安装nacos以及设置密码和配置中心的使用,希望对你有所帮助。

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
要在Docker部署Nacos配置MySQL,可以按照以下步骤进行操作: 1. 拉取Nacos的官方镜像,如MySQL 5.7版本的:docker pull nacos/nacos-server:1.3.1 。 2. 确保本机已安装了Git、DockerDocker Compose。 3. 拉取一个包含修改后支持MySQL 8的Nacos版本的文件,可以使用命令:git clone https://gitee.com/korov/Docker.git 。 4. 创建一个logs目录和一个init.d目录,可以使用命令:mkdir -p /mydata/nacos/logs/ 和 mkdir -p /mydata/nacos/init.d/ 。 5. 配置数据库,创建一个名为nacos_config的数据库,可以使用以下SQL文件:https://github.com/alibaba/nacos/blob/master/config/src/main/resources/META-INF/nacos-db.sql。 6. 进入Nacos容器内,可以使用命令:docker exec -it nacos-server /bin/bash。 通过以上步骤,你可以成功地在Docker部署Nacos配置MySQL。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [docker安装Nacos配置MySQL](https://blog.csdn.net/wts563540/article/details/126450620)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [Docker Compose部署Nacos集群 支持MySQL8](https://download.csdn.net/download/weixin_38609089/14886741)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Alpaca Java

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值