docker安装nacos及springboot项目读取不到nacos配置缘由

dockers 安装nacos


文章目录

  • dockers 安装nacos
  • 前言
  • 一、安装docker
  • 二、docker拉取nacos镜像
  • 二、启动nacos
    • 三、nacos配置mysql数据库
    • 1.创建数据库
    • 2.nacos配置数据库
  • 四、spring Boot连接nacos
    • 1. pom添加依赖
    • 2.添加配置文件bootstrap.yml
    • 3. nacos网页里添加配置文件
    • 4.直接启动项目
  • 五、遇到的问题
    • 1、nacos启动失败
    • 2.spring boot项目读取不到nacos配置!!!
  • 六、总结


前言

提示:本文只介绍如何通过docker去安装nacos以及期间用springboot连接nacos并读取nacos上的配置文件所出现的问题总结。
点击此处了解更多docker基本命令。


一、安装docker

查看docker学习笔记

二、docker拉取nacos镜像

#查看docker镜像
docker search nacos
#直接安装nacos/nacos-server
docker pull nacos/nacos-server
#等待安装完成,查看镜像
docker images

按照上面的步骤,可以看到nacos镜像已经拉下来
docker安装nacos及springboot项目读取不到nacos配置缘由_第1张图片

二、启动nacos

#启动nacos 这里映射了两个端口,nacos默认要8848,而另一个9848后面会提及为何要映射
docker run --env mode=standalone --name nacos -d -p 8848:8848 -p 9848:9848 nacos/nacos-server
#查看
docker ps

此时可以去访问 ip:8848,可以发现已经可以访问nacos的主页了
docker安装nacos及springboot项目读取不到nacos配置缘由_第2张图片

提示:如果无法访问,就是防火墙没开启,或者没开启服务器的安全组
查看防火墙状态
如果上面防火墙已经配置好或关闭状态,就自行百度一下服务器的安全组如何开启咯。
注:这里的端口包括上面映射的两个端口哦!!!

三、nacos配置mysql数据库

1.创建数据库

点击此处下载sql文件
先在自己的数据库里创建nacos的数据库,命名自己决定,然后将这个sql文件在你刚创建的数据库里执行,就可以得到对应的数据库表了。
docker安装nacos及springboot项目读取不到nacos配置缘由_第3张图片

2.nacos配置数据库

注:这里可以学习一下docker的文件挂载,这样子会方便多一点。

#进入nacos容器
docker exec -it nacos bash
# 此时就直接进入了nacos容器里了,再进入配置文件夹里
cd conf

如图所示:
docker安装nacos及springboot项目读取不到nacos配置缘由_第4张图片
编辑配置文件,并修改数据库信息

vim application.properties

按照图片框起来的,改成自己数据库的信息,包括ip端口及数据库名
docker安装nacos及springboot项目读取不到nacos配置缘由_第5张图片
配置好数据库就可以保存退出文件了

#退出容器
exit
#重启容器
docker restart nacos

此时再去访问ip:8848,可以显示nacos主页就表示配置成功了。


四、spring Boot连接nacos

1. pom添加依赖

		<!--注册中心客户端-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            <version>2.2.5.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
            <version>2.2.5.RELEASE</version>
        </dependency>

2.添加配置文件bootstrap.yml

bootstrap.yml:
docker安装nacos及springboot项目读取不到nacos配置缘由_第6张图片

3. nacos网页里添加配置文件

docker安装nacos及springboot项目读取不到nacos配置缘由_第7张图片
文件内容如下:
docker安装nacos及springboot项目读取不到nacos配置缘由_第8张图片

4.直接启动项目

出现下面即可启动(先要测试,直接写个controller层,写个接口,直接访问,能够正常访问即可,或者加个@Value,然后将配置写在nacos上,看看能不能读取到配置)
docker安装nacos及springboot项目读取不到nacos配置缘由_第9张图片

五、遇到的问题

1、nacos启动失败

一开始直接启动nacos,直接执行脚本startup.sh,然后发现报这个错误,其实是因为nacos默认是集群方式启动,而我没有配置集群,导致这个错误。只要改成单机模式启动nacos即可。启动命令多加一个配置项表示是单机启动即可

#  非docker部署方式,直接安装nacos的启动方式
sh startup.sh -m standalone
#docker 方式启动,需要加上下面的--env mode=standalone
docker run --env mode=standalone --name nacos -d -p 8848:8848 -p 9848:9848 nacos/nacos-server

docker安装nacos及springboot项目读取不到nacos配置缘由_第10张图片

2.spring boot项目读取不到nacos配置!!!

一开始按照网上查的部署,启动docker命令如下

docker run --env mode=standalone --name nacos -d -p 8848:8848  nacos/nacos-server

这里和之前的区别在于这个命令只映射了一个8848端口,然后浏览器虽然能够访问nacos主页,也能够在上面创建文件,但是不管怎么做,项目都无法去读取到nacos的文件,导致启动失败。
一开始以为是配置文件或者nacos启动有问题,甚至怀疑在nacos上创建文件的命名格式有误,折腾了很久,搞了docker安装和直接安装,并且参考了其他博客。最后总算找到问题所在。

对于nacos版本超过2.0的,虽然nacos默认的端口是8848,但是nacos里面用了一个叫gRPC的东西(这个我也不是很理解是啥,我所理解的应该就是一个通信,和rpc差不多的一个调用的东东把),这个grpc也需要开通端口,默认端口是 nacos 启动的端口加 1000。
也就是说,nacos 的端口是 8848 的话,那么 gRPC 服务端口就是 9848。
如果非docker安装的话,且防火墙及安全组都开通了,那就比较容易的就可以访问nacos,而docker安装则需要一起将grpc所需要的端口一起映射出来才可以使外部访问得到!
参考地址:https://blog.csdn.net/keypanj2ee/article/details/118725971
rpc介绍

六、总结

虽然期间遇到挺多困难的,也浪费了好一些时间,但是总算是收获颇丰!在此记录,也希望能够帮助到有需要的人!

参考链接:
https://blog.csdn.net/keypanj2ee/article/details/118725971

你可能感兴趣的:(Linux,部署,安装,docker,spring,boot,nacos,linux)