Docker部署Nacos方案,Docker部署Nacos启动失败解决方案

3,262 阅读2分钟

文章背景

 作者准备在阿里云服务器用Docker部署注册中心Nacos,但是一直是部署失败,Nacos启动失败,排查近1小时才找到解决方案,演我呢??? 
 这里做个记录给各位靓仔一个参考解决方案       

Docker启动部署Nacos

Nacos本身会依赖数据库,官网的数据库支持有三种,Derby(Nacos自带内存数据库),Mysql(5.7),Mysql(8),这里我们直接采用自带的Derby即可 
执行docker启动命令:
: docker run --name nacos--test -e PREFER_HOST_MODE=hostname -e SPRING_DATASOURCE_PLATFORM=derby -e MODE=standalone -p 8848:8848 -d nacos/nacos-server

然后访问Nacos UI地址: http://IP:8848/nacos/ 可以看到部署访问成功

企业微信截图_533fad40-0be1-43e1-bbd0-28f329c29cf3.png

Nacos启动失败排查过程

Nacos部署成功后,过了一会发现Nacos居然自己嗝屁了,或者过几秒又停掉了!!! 或者一开始就docker 就启动失败,但是却没有任何启动报错日志
docker logs -f nacos-test  查看nacos启动日志,一切正常,但是就是启动失败

企业微信截图_29b690be-283b-44b7-943f-9c8bdbe74cfd.png

 接着用 :docker inspect nacos-test 查看nacos 启动环境参数,发现默认启动的JVM_XMS 堆内存居然是1G,(楼主是阿里云服务器,乞丐版),这里就想到了
 是不是我的Nacos启动内存太大,我服务器吃不消??

企业微信截图_f9966dcb-7500-4254-89c6-63a30688af91.png 企业微信截图_aa67ef88-9f45-417c-a305-7fabe716d7fa.png

尝试解决方案:在nacos启动时,增加JVM_XMS/JVM_XMX 启动参数,限制启动运行内存,这里我改成256M看看效果
: docker run --name nacos-yh-test -e PREFER_HOST_MODE=hostname -e SPRING_DATASOURCE_PLATFORM=derby -e MODE=standalone -e JVM_XMS=256m -e JVM_XMX=256m -p 8848:8848 -d nacos/nacos-server

企业微信截图_4026ecb9-4494-41bb-9f8a-eb218319a46a.png

最终完美解决,启动成功!!!!,运行使用没毛病

wecom-temp-ba965598f848bb90674ab414d7cb5bf5.png

Nacos启动失败解决方案总结

1 docker启动nacos使用JVM_XMS/JVM_XMX 内存是1G(乞丐版服务器撑不住)
2 修改启动命令限制启动参数JVM_XMS/JVM_XMX,即
  :docker run --name nacos-yh-test -e PREFER_HOST_MODE=hostname -e SPRING_DATASOURCE_PLATFORM=derby -e MODE=standalone -e JVM_XMS=256m -e JVM_XMX=256m -p 8848:8848 -d nacos/nacos-server