Ubuntu22.04在docker下安装Nacos

官方有nacos的镜像,也可以直接通过docker进行安装:
https://registry.hub.docker.com/r/nacos/nacos-server

拉取镜像

docker pull nacos/nacos-server:v2.1.1

image-20241113161839091

查看已经拉取的nacos镜像

docker images

image-20241113161939258

建议使用如下jvm优化参数,否则内存占用会飙升

docker run --name nacos \
-e MODE=standalone \
-e JVM_XMS=128m \
-e JVM_XMX=128m \
-e JVM_XMN=64m \
-e JVM_MS=64m \
-e JVM_MMS=64m \
-p 8848:8848 \
-p 9848:9848 \
-p 9849:9849 \
-d nacos/nacos-server:v2.1.1

参数说明:

  • -d: 后台运行
  • –name: 容器的名称
  • -p: 外部访问端口:内部被映射端口
  • –env(e): 直接添加变量,适用于直接用docker启动的项目
    • mode:单机
    • IP:当前服务器的ip(nacos地址)
  • JVM_XMS:程序启动时占用内存大小,默认1g
  • JVM_XMX:运行期间最大可占用内存大小写,默认1g
  • JVM_XMN:新生代大小
  • JVM_MS:元空间的大小
  • JVM_MMS:最大元空间的大小

当nacos客户端升级为2.x版本后,新增了gRPC的通信方式,新增了两个端口。这两个端口在nacos原先的端口上(默认8848),进行一定偏移量自动生成.。

端口 与主端口的偏移量 描述
9848 1000 客户端gRPC请求服务端端口,用于客户端向服务端发起连接和请求
9849 1001 服务端gRPC请求服务端端口,用于服务间同步等

因为是用的docker安装的nacos,所以启动的时候,只把宿主机的8848端口和容器的8848端口映射了,所以客户端像服务端发起连接请求的时候会报9948找不到,只要同时把9949,和9849端口也同时暴露出去就行了

docker ps 查看运行的nacos容器

image-20241113162754395

运行成功,打开页面可以测试,[nacos的所在ip地址:8848]/nacos

image-20241113163312899

使用默认账号和密码:nacos/nacos即可登录

image-20241113163533388

设置自动启动

docker update nacos --restart=always

监控容器对cpu内存等的占用率

docker stats

在这里插入图片描述
注意在实际生成环境中要根据服务器的内存来进行设置nacos的jvm内存占用大小,否则可能会出现内存溢出情况。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐