Docker 安装 Nacos

news2024/12/21 17:20:15

简介

Nacos 是一个轻量级的服务发现、配置管理和服务管理平台,它支持多种语言(Java、Go、Node.js 等)和多种协议(HTTP、gRPC、DNS 等),能够帮助开发者构建微服务体系结构,简化了应用程序在不同环境中的部署和维护。本文中,我们将介绍如何使用 Docker 启动并安装 Nacos。

安装 Docker

首先,需要安装 Docker。可以通过官方网站下载适合自己操作系统版本的 Docker,并按照其指导进行安装。参考以往文章

下载Nacos镜像

搜索相关镜像:

[root@localhost ~]# docker search nacos
NAME                             DESCRIPTION                                      STARS     OFFICIAL   AUTOMATED
nacos/nacos-server               This project contains a Docker image meant t…   419                  [OK]
nacos/nacos-peer-finder-plugin   scale plugin for nacos k8s                       2                    
nacos/nacos-mysql-master         nacos-mysql-master                               6                    
nacos/nacos-mysql-slave                                                           1                    
nacos/nacos-mysql                                                                 7                    
nacos/nacos-operator                                                              3                    
paderlol/nacos                   Nacos-quick-start-https://nacos.io/en-us/doc…   5                    
jude95/nacos-server-mysql8       nacos with mysql8                                0                    
lizexiong/nacos                                                                   0                    
zhusaidong/nacos-server-m1       Nacos Server for Apple MacOS M1                  18                   
tanyi/nacos-server               nacos-server官方包制作而成的镜像                 1                    
dockerlishijie/nacos-server                                                       0                    
king019/nacos                                                                     2                    
loads/nacos-server                                                                0                    
centralx/nacos-server            Multi CPU architectures support for nacos/na…   0                    
nacosta/redis                                                                     0                    
nacosta/node-5.5.0-base                                                           0                    
wuyfeedocker/nacos-ci            nacos-docker-test                                0                    
nacosta/nodejs                                                                    0                    
tonychen0716/nacos-server        Multi-arch image for Alibaba Nacos               0                    
chenfengwei/nacos                nacos服务镜像,nacos版本1.3.2,同时兼任arm64…    3                    
eduosi/nacos-server                                                               0                    
paderlol/nacos-mysql-master                                                       0                    
paderlol/nacos-mysql-slave                                                        0                    
lijiahao1995/nacos                                                                0

下载镜像,这会从 Docker Hub 上下载最新版本的 Nacos 镜像文件到你的本地机器上。

[root@localhost ~]# docker pull nacos/nacos-server

启动 Nacos 容器

步骤 1:创建容器网络

在启动 Nacos 容器之前,需要先创建一个容器网络,以便容器之间可以相互访问和通信。可以使用以下命令创建一个名为 nacos_network 的容器网络:

[root@localhost ~]# docker network create nacos_network
741f1399c358bd18eca6f89faaaf97a25409123829b4c67e0119e8a118074fcd

步骤 2:启动 Nacos 容器

接下来使用以下命令启动 Nacos 容器:

[root@localhost ~]# docker run --name nacos -d \
-p 8848:8848 \
--network nacos_network \
-e MODE=standalone \
nacos/nacos-server
395b63593c2f0eeea4666efbbec481efd4a982e60f3387852144930e0ccd7f9c

 这个命令会启动一个名为 nacos 的容器,并将其绑定到本地机器的 8848 端口。同时,它还会将容器添加到之前创建的 nacos_network 容器网络中,并设置容器模式为 standalone。

步骤 3:访问 Nacos Web

启动完 Nacos 容器后,就可以通过 http://192.168.56.100:8848/nacos 访问 Nacos Web 控制台了。在控制台上,可以进行服务注册、配置管理和服务发现等操作。

注意:当前启动的nacos容器没有开启认证,生产或其他环境需要开启认证。参考网址:dockerhub

 docker启动时增加启动参数即可。

步骤4:配置 Nacos 数据库

默认情况下,Nacos 使用内置的 Derby 数据库进行数据存储。虽然 Derby 是一个轻量级的数据库,但当数据量较大时,它可能会导致性能瓶颈和数据丢失的问题。因此,建议将 Nacos 数据库存储改为 MySQL 或 PostgreSQL 等外部数据库。

步骤 4.1:安装 MySQL 数据库

需要提前安装mysql数据库,可以参考以往的文章。docker 安装mysql

步骤 4.2:创建 Nacos 数据库和用户

安装完成 MySQL 后,需要创建一个新的数据库和用户,并授予其访问权限。可以使用以下命令创建一个名为 nacos 的数据库和用户:

mysql -u root -p 
CREATE DATABASE nacos DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; 
CREATE USER 'nacos'@'%' IDENTIFIED BY '123456'; 
GRANT ALL PRIVILEGES ON nacos.* TO 'nacos'@'%'; 
FLUSH PRIVILEGES; EXIT;

这样,就创建了一个名为 nacos 的数据库和一个名为 nacos 的用户,并赋予它们访问权限。

执行脚本:

步骤 4.3:修改 Nacos 配置文件

在启动 Nacos 容器之前,需要修改配置文件以将 Nacos 数据库存储改为 MySQL。

首先,新建宿主机的文件目录

[root@localhost nacos]# pwd
/root/nacos
[root@localhost nacos]# ls
conf  logs
[root@localhost nacos]# 

[root@localhost nacos]# docker cp nacos:/home/nacos/logs/ /root/nacos/logs/
Preparing to copy...
Copying from container - 32.77kB
Copying from container - 65.54kB
Copying from container - 88.58kB
Successfully copied 88.58kB to /root/nacos/logs/
[root@localhost nacos]# docker cp nacos:/home/nacos/conf/ /root/nacos/conf/
Preparing to copy...
Copying from container - 32.77kB
Copying from container - 61.44kB
Successfully copied 61.44kB to /root/nacos/conf/

配置数据库链接

# spring
server.servlet.contextPath=${SERVER_SERVLET_CONTEXTPATH:/nacos}
server.contextPath=/nacos
server.port=${NACOS_APPLICATION_PORT:8848}
server.tomcat.accesslog.max-days=30
server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D %{User-Agent}i %{Request-Source}i
server.tomcat.accesslog.enabled=${TOMCAT_ACCESSLOG_ENABLED:false}
server.error.include-message=ALWAYS
# default current work dir
server.tomcat.basedir=file:.
#*************** Config Module Related Configurations ***************#
### Deprecated configuration property, it is recommended to use `spring.sql.init.platform` replaced.
#spring.datasource.platform=${SPRING_DATASOURCE_PLATFORM:}
spring.sql.init.platform=${SPRING_DATASOURCE_PLATFORM:mysql}
nacos.cmdb.dumpTaskInterval=3600
nacos.cmdb.eventTaskInterval=10
nacos.cmdb.labelTaskInterval=300
nacos.cmdb.loadDataAtStart=false
db.num=${MYSQL_DATABASE_NUM:1}
db.url.0=jdbc:mysql://192.168.56.100:13306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false}
db.user.0=nacos
db.password.0=123456
### The auth system to use, currently only 'nacos' and 'ldap' is supported:
nacos.core.auth.system.type=${NACOS_AUTH_SYSTEM_TYPE:nacos}
### worked when nacos.core.auth.system.type=nacos
### The token expiration in seconds:
nacos.core.auth.plugin.nacos.token.expire.seconds=${NACOS_AUTH_TOKEN_EXPIRE_SECONDS:18000}
### The default token:
nacos.core.auth.plugin.nacos.token.secret.key=${NACOS_AUTH_TOKEN:}
### Turn on/off caching of auth information. By turning on this switch, the update of auth information would have a 15 seconds delay.
nacos.core.auth.caching.enabled=${NACOS_AUTH_CACHE_ENABLE:false}
nacos.core.auth.enable.userAgentAuthWhite=${NACOS_AUTH_USER_AGENT_AUTH_WHITE_ENABLE:false}
nacos.core.auth.server.identity.key=${NACOS_AUTH_IDENTITY_KEY:}
nacos.core.auth.server.identity.value=${NACOS_AUTH_IDENTITY_VALUE:}
## spring security config
### turn off security
nacos.security.ignore.urls=${NACOS_SECURITY_IGNORE_URLS:/,/error,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/v1/auth/**,/v1/console/health/**,/actuator/**,/v1/console/server/**}
# metrics for elastic search
management.metrics.export.elastic.enabled=false
management.metrics.export.influx.enabled=false
nacos.naming.distro.taskDispatchThreadCount=10
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

关闭并删除docker nacos

[root@localhost nacos]# docker stop nacos && docker rm nacos
nacos
nacos
步骤 4.4:重新启动容器
docker run --name nacos -d \
-p 8848:8848 \
-e MODE="standalone" \
-e SPRING_DATASOURCE_PLATFORM="mysql" \
-e MYSQL_SERVICE_HOST="192.168.56.100" \
-e MYSQL_SERVICE_PORT="13306" \
-e MYSQL_SERVICE_USER="root" \
-e MYSQL_SERVICE_DB_NAME=nacos \
-e MYSQL_SERVICE_PASSWORD="my-secret-pw" \
-e MYSQL_SERVICE_DB_PARAM="characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false" \
-v /root/nacos/logs/logs:/home/nacos/logs \
-v /root/nacos/conf/conf/:/home/nacos/conf/ \
nacos/nacos-server

总结

本文介绍了如何使用 Docker 启动并安装 Nacos,并讲解了如何将 Nacos 数据库存储改为 MySQL。通过这些步骤,你可以轻松地在自己的机器上搭建起 Nacos 服务注册和配置管理平台,方便进行微服务应用程序开发和部署工作。

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

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

相关文章

入门前端监控

背景 前端监控是指通过一系列手段对Web页面或应用程序进行实时监控和数据采集,以了解页面或应用程序的性能状况、用户行为等等,并及时发现和解决潜在的问题。一个完整的前端监控平台可以包括:数据收集与上报、数据整理与存储、数据展示这里仅…

去重排序2——set

题目描述 输入 个正整数 ​ ,按照从大到小的顺序输出不重复的数。 输入格式 第一行一个整数 n 。 第二行 个用空格隔开的正整数 ​ 。 输出格式 每行一个正整数,为从大到小排序后的不重复的数。 样例 #1 样例输入 #1 8 1 3 4 2 2 2 3 1样例输出 #1 4 3…

Linux Mint 21.2 “Victoria “现已可供下载

导读Linux Mint 21.2 “Victoria “发行版今天出现在该项目全球稳定镜像上,这意味着开发者将很快发布官方公告,通知想要下载最新Linux Mint版本的用户。 Linux Mint 21.2从2023年6月21日开始进行公开测试,这给了开发者足够的时间来修复剩余的…

redis(11):springboot中使用redis

1 创建springboot项目 2 创建pom文件 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http:/…

同样是测试点工,他凭啥薪资比我高?

如果别人在功能测试方面薪资比你高那是因为做得比你好&#xff0c;别人功能测试做的比你好可能有以下几个原因&#xff1a; 测试策略和方法&#xff1a;别人可能采用了更有效的测试策略和方法&#xff0c;能够更全面地覆盖功能的各个方面。他们可能有更深入的测试计划和设计&a…

【云驻共创】CodeArts Repo ---高效代码协同开发之旅

目录 一、代码托管发展史 1.1 第一代 1.2 第二代 1.3 第三代 二、CodeArts Repo 介绍 二、CodeArts Repo 功能架构 2.1 研发协同 2.2 代码管理功能 2.3 代码存储特性 三、CodeArts Repo 技术能力 三、华为云代码托管技术发展历程 四、CodeAr…

《重构的时机和方法》一本值得程序员都认真读的书

写在前面 《重构的时机和方法》是一本关于软件开发中重构技术的书籍。它以独特的风格和内容优势&#xff0c;为读者提供了全面而易于理解的指导&#xff0c;帮助他们在实际项目中应用重构技术&#xff0c;提高代码质量和开发效率。这本书由两个不同风格的部分组成&#xff0c;…

前端面试题-浏览器相关

1 cookie和localSrorage、session、indexDB 的区别 从上表可以看到&#xff0c; cookie 已经不建议⽤于存储。如果没有⼤量数据存储需求的话&#xff0c;可以使⽤ localStorage 和 sessionStorage 。对于不怎么改变的数据尽量使⽤ localStorage 存储&#xff0c;否则可以⽤ se…

java项目之人事管理系统(ssm+mysql+jsp)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于ssm的人事管理系统。技术交流和部署相关看文章末尾&#xff01; 开发环境&#xff1a; 后端&#xff1a; 开发语言&#xff1a;Java 框架&…

【力扣每日一题】2023.7.24 宝石与石头

目录 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代码运行结果&#xff1a; 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 给我们一个字符串表示宝石的类型&#xff0c;再给我们一个字符串表示我们已经拥有的石头&#xff0c;问我们在石头中能找到多少宝…

一文助你快速提高嵌入式软件的代码质量【下】

一文助你快速提高嵌入式软件的代码质量 文章目录 一文助你快速提高嵌入式软件的代码质量&#x1f468;‍&#x1f3eb;前言1️⃣写直观的代码2️⃣写无懈可击的代码3️⃣正确处理错误4️⃣正确处理null指针5️⃣防止过度工程&#x1f647;文末小结 &#x1f468;‍&#x1f3eb…

Python 快速简单搭建HTTP本地服务器,内网通过浏览器访问

1 下载python https://www.python.org/downloads/ 2 安装python&#xff0c;安装时候选择把path加入电脑环境变量 3 由于python内建了简单http服务包&#xff0c;因此对于python来说&#xff0c;只需输入一行命令&#xff0c;就能轻松打开http服务。当然&#xff0c;要运行网页…

C++之栈和堆申请内存(一百六十四)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

【复习16-18天】【我们一起60天准备考研算法面试(大全)-第二十四天 24/60】

专注 效率 记忆 预习 笔记 复习 做题 欢迎观看我的博客&#xff0c;如有问题交流&#xff0c;欢迎评论区留言&#xff0c;一定尽快回复&#xff01;&#xff08;大家可以去看我的专栏&#xff0c;是所有文章的目录&#xff09;   文章字体风格&#xff1a; 红色文字表示&#…

【复习42-44题】【每天40分钟,我们一起用50天刷完 (剑指Offer)】第三十四天 34/50

专注 效率 记忆 预习 笔记 复习 做题 欢迎观看我的博客&#xff0c;如有问题交流&#xff0c;欢迎评论区留言&#xff0c;一定尽快回复&#xff01;&#xff08;大家可以去看我的专栏&#xff0c;是所有文章的目录&#xff09;   文章字体风格&#xff1a; 红色文字表示&#…

消息队列(一)-- RabbitMQ入门(1)

初识 RabbitMQ 核心思想&#xff1a;接收并转发消息。可以把它想象成一个邮局。 producer&#xff1a;生产者 queue&#xff1a;队列 consumer&#xff1a;消费者什么是消息队列 MQ&#xff08;Message Queue&#xff09;&#xff1a;本质是队列&#xff0c;FIFO先入先出&…

数字IC必学之《SKILL语法用户手册》建议收藏!

熟悉我的同学都知道&#xff0c;一直以来&#xff0c;我都会为大家分享IC各个岗位的学习资料。前端、后端、验证、版图等等&#xff0c;为大家分享了很多。当然也有一些IC入行需要学习的一些语言资料。去年在各个平台更新了一篇关于SKILL的资料&#xff1a; 《Skill入门教程》…

常用API学习07(Java)

Date 在jdk1.8之前,java中的日期和时间是一类的&#xff0c;从1.8之后对日期和时间体系重新做了规划&#xff0c;划分出一个新的包 - java.time包&#xff0c;这个包中包含了日期、时间、时区、日历、单位。 Date&#xff0c;是java中最老的日期和时间类&#xff0c;后续退出…

(原创)Flutter与Native通信的方式:EventChannel和BasicMessageChannel

前言 上一篇博客主要介绍了MethodChannel的使用方式 Flutter与Native通信的方式&#xff1a;MethodChannel 这篇博客接着讲另外两种通信方式 EventChannel和BasicMessageChannel EventChannel用于从native向flutter发送通知事件&#xff0c;例如flutter通过其监听Android的重…

视频文件批量添加字幕内容需要如何快速操作

有时候我们在剪辑视频的过程中&#xff0c;想要给视频素材添加上一些文字说明&#xff0c;需要如何操作呢&#xff1f;为了提高剪辑效率&#xff0c;今天小编来分享教学&#xff0c;教你如何才能批量地给视频素材添加滚动字幕&#xff0c;一起来看看具体的方法介绍吧。 我们先打…