Docker 安装 Nacos

简介

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 服务注册和配置管理平台,方便进行微服务应用程序开发和部署工作。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值