Docker最佳实践(六):安装Nacos

news2024/9/21 8:02:48

大家好,欢迎各位工友。 本篇呢我们就来演示一下如何在Docker中部署nacos容器,市面上的教程多多少少都有点小坑,博主磕磕绊绊测试了好几次,才算解决此问题。

1. 拉取Nacos镜像

首先,拉取对应版本的Nacos镜像文件。可以使用以下命令拉取指定版本的Nacos镜像(此处以v2.1.1为例):

docker pull nacos/nacos-server:v2.1.1
2. 挂载目录和修改配置文件

创建日志和配置文件目录,并修改application.properties配置文件:

mkdir -p /kim/nacos/logs/                      # 新建logs目录
mkdir -p /kim/nacos/conf/          
vim /kim/nacos/conf/application.properties      # 修改配置文件

application.properties中添加配置信息,端口、数据库账号密码自行补充。

server.contextPath=/nacos
server.servlet.contextPath=/nacos
server.port=8848
 
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://xx.xx.xx.xx:xxxx/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&serverTimezone=UTC
db.user=xx
db.password=xxx
 
nacos.cmdb.dumpTaskInterval=3600
nacos.cmdb.eventTaskInterval=10
nacos.cmdb.labelTaskInterval=300
nacos.cmdb.loadDataAtStart=false
management.metrics.export.elastic.enabled=false
management.metrics.export.influx.enabled=false
server.tomcat.accesslog.enabled=true
server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D %{User-Agent}i
nacos.security.ignore.urls=/,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/v1/auth/login,/v1/console/health/**,/v1/cs/**,/v1/ns/**,/v1/cmdb/**,/actuator/**,/v1/console/server/**
nacos.naming.distro.taskDispatchThreadCount=1
nacos.naming.distro.taskDispatchPeriod=200
nacos.naming.distro.batchSyncKeyCount=1000
nacos.naming.distro.initDataRatio=0.9
nacos.naming.distro.syncRetryDelay=5000
nacos.naming.data.warmup=true
nacos.naming.expireInstance=true
3. 启动Nacos容器

运行以下命令启动Nacos容器:

docker run \
--name nacos -d \
-p 8848:8848 \
-p 9848:9848 \
-p 9849:9849 \
--privileged=true \
--restart=always \
-e JVM_XMS=256m \
-e JVM_XMX=256m \
-e MODE=standalone \
-e PREFER_HOST_MODE=hostname \
-v /kim/nacos/logs:/home/nacos/logs \
-v /kim/nacos/conf/application.properties:/home/nacos/conf/application.properties \
nacos/nacos-server:v2.1.1

参数释义:

  • --name nacos: 指定容器名称为 “nacos”。
  • -d: 让容器以守护进程方式在后台运行。
  • -p 8848:8848 -p 9848:9848 -p 9849:9849: 将容器内部的端口映射到主机上。2.0以后的版本需要同时放开9848、9849端口否则java程序无法访问。
  • --privileged=true: 给予容器特权。
  • --restart=always: 设置容器在退出时重新启动。
  • -e JVM_XMS=256m -e JVM_XMX=256m: 设置Java虚拟机的初始堆内存和最大堆内存为256m。
  • -e MODE=standalone: 设置Nacos运行模式为单机模式运行。
  • -e PREFER_HOST_MODE=hostname: 设置Nacos服务优先使用主机名。
  • -v /kim/nacos/logs:/home/nacos/logs: 将主机上的日志目录挂载到容器内部。
  • -v /kim/nacos/conf/application.properties:/home/nacos/conf/application.properties: 将配置文件挂载到容器内部。
  • nacos/nacos-server:v2.1.1: 指定要运行的Nacos镜像版本。
4. 查看日志

可以使用以下命令查看Nacos容器的日志信息:

docker logs nacos 
日志截图如下:

在这里插入图片描述

此时nacos容器就安装成功了可以打开浏览器进行登录:

https:xx.xx.xx.xx:8848/nacos 账号:nacos 密码:nacos
在这里插入图片描述

5. 设置自启动

最后,设置Nacos容器自启动:

docker update --restart=always nacos

这样就完成了在Docker中部署Nacos容器的过程,确保按照以上步骤操作,即可成功部署和运行Nacos服务。

6. 错误总结
1.Caused by: java.lang.IllegalStateException: No DataSource set

在这里插入图片描述

  • 错误原因:是使用了 Mysql 最新版驱动,
    本文给出的示例已经解决此问题
  • 解决方法:
  1. 在项目代码-数据库连接 URL 后,加上 serverTimezone=UTC
  2. 如果有时差可以换成这个serverTimezone=GMT%2B8
2、nacos登录时,账号密码初始化成功,登录提示密码不对

这个是博主在Linus宿主机上部署遇到的问题,当时jdk版本是1.8升级到11后此问题解决。

7. 总结

至此博主准备部署的微服务项目基础环境已经搭建完毕,接下来就准备部署项目到docker中了,下一篇我们详细演示下如何将项目部署到服务器中。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1994557.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【ACM出版,EI稳定检索】第四届信号处理与通信技术国际学术会议(SPCT 2024)

第四届信号处理与通信技术国际学术会议(SPCT 2024) 2024 4th International Conference on Signal Processing and Communication Technology 重要信息 大会官网:www.icspct.com 大会时间:2024年12月27-29日 大会地点&#xff1a…

Nodejs实现图片加水印 【使用jimp】

Nodejs实现图片加水印 【使用jimp】 先看效果 我们将使用jimp实现图片加上水印,可以结合路由进行用户上传后处理该图片生成带水印的图片返回个用户 const path require("path"); const jimp require("jimp");/*** 给一张图片加水印* para…

【C语言篇】自定义类型:联合体和枚举详细介绍

文章目录 联合体联合体类型的声明联合体的特点联合体和结构体对比联合体大小的计算判断大小端 枚举枚举类型的声明枚举类型的优点枚举的使用 联合体 联合体类型的声明 像结构体⼀样,联合体也是由⼀个或者多个成员构成,这些成员可以不同的类型。 但是编…

第10章 无持久存储的文件系统 (1)

目录 前言 10.1 proc文件系统 10.1.1 /proc 内容 本专栏文章将有70篇左右,欢迎关注,查看后续文章。 前言 即存在于内存中的文件系统。如: proc: sysfs: 即/sys目录。 内容不一定是ASCII文本,可能是二进…

Delaunay三角化重要性质,最小角最大化

欢迎关注更多精彩 关注我,学习常用算法与数据结构,一题多解,降维打击。 最大化最小角 推论 有点集P是一般点集(没有多点共线,没有4点共圆),那么该点集的delauney三角后的最小角不小于其他非de…

HTML5+CSS3笔记(Xmind格式):第五天

Xmind鸟瞰图: 简单文字总结: HTML5CSS3知识总结: canvas坐标: 画图的基本步骤: 1.创建画布 2.获取画布 3.开始路径规划 4.规定画笔颜色 5.规定画笔粗细 6.开始作…

OLAP与OLTP:数据处理系统的两种核心架构

目录 一、什么是OLAP? 二、什么是OLTP? 三、OLAP与OLTP的主要区别 四、结论 在数据管理和分析的领域中,OLAP(在线分析处理)和OLTP(在线事务处理)代表了两种重要的数据处理模式。它们在功能、目标…

MoE-LLaVA: Mixture of Experts for Large Vision-Language Models

发表时间:6 Jul 2024 论文链接:https://arxiv.org/pdf/2401.15947 作者单位:Peking University Motivation:最近的进展表明,扩展大型视觉语言模型 (LVLM) 有效地提高了下游任务的性能。然而,现有的缩放方…

uniapp版本更新除了plus.runtime.getProperty的解决办法

以下是展示图 带尺寸的图片: 首先把以下代码放到想要更新弹出的页面 //template部分<uni-popup ref"popup" background-color"#fff"><versionUp handleCloseVersion"closeVersion"></versionUp></uni-popup>//script…

支付宝开放平台竟出现一张神秘人脸!

前言 ​ 我因一个单子来到支付宝开放平台来。在将其加入书签的时候&#xff0c;我发现出现了个神秘的人脸 一张笑容明媚的脸&#xff0c;就是出现的时候不太对 正常的收藏网址 应该是显示对应log 就不继续找相关例子了 ​ 添加书签的页面&#xff0c;本该出现log的地方缺出现了…

SQL注入实例(sqli-labs/less-23)

0、初始网页 1、闭合方式判断 闭合符号为单引号&#xff0c;通过测试发现过滤了注释&#xff0c;所以直接闭合 2、确定查询表的列数 确定查询表的列数为3列 ?id1 order by 3 3、确定回显位置 回显位置为第二列和第三列 ?id-1 union select 1,2,3 4、查看当前登录和数据…

【统信UOS】桌面系统通过自定义内网补丁仓库升级内网系统

原文链接&#xff1a;【统信UOS】桌面系统通过自定义内网补丁仓库升级内网系统 Hello&#xff0c;大家好啊&#xff01;今天给大家带来一篇关于在统信桌面系统上通过自定义内网补丁仓库升级内网系统的文章。在企业或组织内部网络环境中&#xff0c;为了安全性和便捷性&#xff…

《Ubuntu22.04环境下的ROS2学习笔记1》

一、在ROS2环境下创建工作空间 ROS2相比ROS1来说工作空间的创建有较大的不同&#xff0c;同时工作空间中的四个目录被更换为src(存放源码) &#xff0c; build(存放编译的中间文件) &#xff0c; install(存放可执行文件) &#xff0c; log(日志)。同时命令行也有些许变化&…

【循环神经网络】案例:周杰伦歌词文本预测【训练+python代码】

文章目录 1、简介2、数据集3、构建词典4、构建数据集对象5、构建网络模型6、构建训练函数6.1、多分类交叉熵损失函数&#x1f53a;6.2、Adam&#x1f53a;6.3、代码 7、构建预测函数8、word_to_index和index_to_word8.1、word_to_index8.2、index_to_word8.3、使用场景 9、Data…

OpenHarmony编译

简介&#xff1a;本文将会介绍编译OpendHarmony环境的搭建、编译、和刷机&#xff08;rk3568&#xff09; 使用场景&#xff1a;修改系统源码&#xff0c;需要验证修改的功能是否正确、编译镜像、编译SDK 1、VS Code&#xff0c;下载链接&#xff0c;用于修改源码 2、linux环…

“低代码”平台的机遇与挑战

低代码平台的机遇 提高开发效率&#xff1a; 低代码平台通过提供可视化的开发工具和可重用的组件&#xff0c;显著提高了开发效率。开发者能够更快速地构建和部署应用&#xff0c;迅速响应市场需求。据普遍观点&#xff0c;低代码平台能够提升30%以上的开发效率&#xff0c;而无…

记一次用户认证代码重构中设计模式及设计原则的使用

目录 一、需求二、初始代码 - 上来就怼三、重构1 - 单一职责&#xff08;方法级&#xff09;四、重构2 - 单一职责&#xff08;类级、策略模式&#xff09;、简单工厂五、重构3 - 依赖注入&#xff08;避免重复创建对象&#xff09;六、重构4 - 使用Map替代if...else、享元模式…

AI浪潮下的程序员命运:消失还是进化?

随着人工智能技术的迅猛发展&#xff0c;程序员职业正面临着前所未有的挑战与机遇。在这个变革的时代&#xff0c;程序员们究竟该如何应对&#xff0c;才能在AI浪潮中乘风破浪&#xff0c;开创属于自己的朝阳之路呢&#xff1f; 程序员这一职业正迎来前所未有的变革&#xff0…

DC-9靶机渗透测试

DC-9靶机 文章目录 DC-9靶机信息收集web渗透后台渗透用户横向移动权限提升靶机总结 信息收集 扫描目标主机存在的端口信息 存在80和22端口 看来思路应该不会有太大变化了&#xff0c;但是ssh端口是处于过滤的状态 进行漏洞扫描也没扫描出有可以利用的 但知道了一些界面 web渗透…

沪深300股指期货如何操作套期保值?

沪深300股指期货的套期保值是一种重要的风险管理工具&#xff0c;用于对冲投资组合面临的市场风险。 以下是套期保值流程的详细步骤说明&#xff1a; 第一&#xff0c;评估套保需求&#xff1a;投资者首先需要基于对市场走势的深入分析和对投资组合的细致评估&#xff0c;确定…