Docker运行Nacos容器,过一会就报错`UnsatisfiedDependencyException`

Docker运行Nacos容器,过一会就报错UnsatisfiedDependencyException

  • 问题背景

    最近要上线一个项目,由于要使用Nacos作为服务注册中心,为了方便,我就打算直接使用Docker部署Nacos,没想到Nacos启动没一会就嗝屁了,然后使用 docker logs --tail 500 nacos查看日志发现如下错误:

    org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'memoryMonitor' defined in URL [jar:file:/home/nacos/target/nacos-server.jar!/BOOT-INF/lib/nacos-config-2.2.3.jar!/com/alibaba/nacos/config/server/monitor/MemoryMonitor.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'asyncNotifyService': Unsatisfied dependency expressed through field 'dumpService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'externalDumpService': Invocation of init method failed; nested exception is ErrCode:500, ErrMsg:Nacos Server did not start because dumpservice bean construction failure :
    errCode: 102, errMsg: dataSource or tableName is null 
    

    image-20230817140741716

  • 问题原因

    Nacos默认启动指令,默认使用的堆内存高达1G,由于我的服务器是免费送的,内存比较小,再加上我又下载了其它很多软件,这就导致我的服务器承受不住,已启动就直接挂了,

  • 问题解决

    通过执行该命令,会创建一个名为 “nacost” 的 Docker 容器,并在其中运行 Nacos 服务器。容器中的 Nacos 将以独立模式运行,使用 Derby 数据库作为数据源平台,并设置了一定的内存限制。同时,Nacos 控制台将通过主机的 8848 端口进行访问。

    docker run --name nacos \
    -e MODE=standalone \
    -e PREFER_HOST_MODE=hostname \
    -e SPRING_DATASOURCE_PLATFORM=derby \
    -e JVM_XMS=256m \
    -e JVM_XMX=256m \
    -p 8848:8848 \
    -d nacos/nacos-server
    

    参数详解:

    • docker run:用于创建和运行一个新的 Docker 容器。
    • `–name nacos:为容器指定一个名称,这里是 “nacos”。
    • -e PREFER_HOST_MODE=hostname:设置环境变量 PREFER_HOST_MODE 的值为 “hostname”。这个环境变量用于配置 Nacos 在集群模式下的首选主机名解析方式,将其设置为 “hostname” 表示使用主机名进行解析。
    • -e SPRING_DATASOURCE_PLATFORM=derby:设置环境变量 SPRING_DATASOURCE_PLATFORM 的值为 “derby”。这个环境变量用于配置 Nacos 使用 Derby 数据库作为数据源平台。
    • -e MODE=standalone:设置环境变量 MODE 的值为 “standalone”。这个环境变量用于配置 Nacos 运行在独立模式下。
    • -e JVM_XMS=256m-e JVM_XMX=256m:分别设置环境变量 JVM_XMSJVM_XMX 的内存大小为 256MB。这些环境变量用于配置 Nacos 服务器的初始堆大小和最大堆大小。
    • -p 8848:8848:将容器内的端口 8848 映射到主机上的端口 8848,这样可以在主机上通过 http://localhost:8848 访问 Nacos 控制台。
    • -d:以后台(守护进程)模式运行容器。
    • nacos/nacos-server:指定要使用的 Nacos 服务器的 Docker 镜像。

然后访问http://服务器IP:8848/nacos/即可看到Nacos客户端页面了

image-20230817142837867

参考文章

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

知识汲取者

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

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

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

打赏作者

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

抵扣说明:

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

余额充值