docker安装部署nacos集群

前提条件

  • 三台服务器ip:192.168.56.102、192.168.56.105、192.168.56.106
  • 安装好docker环境(教程:Linux的centos7安装docker
  • 安装好mysql数据库

1.镜像拉取

docker pull nacos/nacos-server:1.4.0

2.参数说明

参数名描述选项
MODE集群/独立cluster/standalone 默认:cluster
NACOS_SERVERSnacos群集地址例如。ip1:端口1 ip2:端口2 ip3:端口3
PREFER_HOST_MODE是否支持主机名主机名/ IP默认IP
NACOS_APPLICATION_PORTnacos服务器端口默认8848
NACOS_SERVER_IP网络为mutil-network时自定义nacos服务器ip
SPRING_DATASOURCE_PLATFORM独立支持mysqlmysql /空默认为空
MYSQL_SERVICE_HOSTmysql主机
MYSQL_SERVICE_PORTmysql数据库端口默认值:3306
MYSQL_SERVICE_DB_NAMEmysql数据库名称
MYSQL_SERVICE_USER数据库的用户名
MYSQL_SERVICE_PASSWORD数据库密码
MYSQL_DATABASE_NUM表示数据库数量默认值:1
MYSQL_SERVICE_DB_PARAM数据库URL参数默认值:characterEncoding = utf8&connectTimeout = 1000&socketTimeout = 3000&autoReconnect = true
JVM_XMS-Xms默认值:2g
JVM_XMX-Xmx默认值:2g
JVM_XMN-Xmn默认值:1g
JVM_MS-XX:MetaspaceSize
JVM_MMS-XX:MaxMetaspaceSize默认值:320m
NACOS_DEBUG启用远程调试
TOMCAT_ACCESSLOG_ENABLEDserver.tomcat.accesslog.enabled默认值:false
NACOS_AUTH_SYSTEM_TYPE要使用的身份验证系统,目前仅支持“ nacos”默认值:nacos
NACOS_AUTH_ENABLE如果打开身份验证系统默认值:false
NACOS_AUTH_TOKEN_EXPIRE_SECONDS令牌到期时间(以秒为单位)默认值:18000
NACOS_AUTH_TOKEN默认令牌默认值:SecretKey012345678901234567890123456789012345678901234567890123456789
NACOS_AUTH_CACHE_ENABLE打开/关闭身份验证信息的缓存。通过打开此开关,认证信息的更新将有15秒的延迟。默认值:false
MEMBER_LIST使用配置文件或命令行参数设置集群列表例如:192.168.16.101:8847?raft_port = 8807、192.168.16.101?raft_port = 8808、192.168.16.101:8849?raft_port = 8809
EMBEDDED_STORAGE在没有mysql的群集模式下使用嵌入式存储embedded 默认值:无

3.创建数据库

下载执行脚本:

1)在GitHub上下:https://github.com/alibaba/nacos/releases,下载nacos-server-1.4.0.zip

在这里插入图片描述

2)把压缩包解压:有一个sql执行脚本,/conf/nacos-mysql.sql

在这里插入图片描述

3)创建数据库nacos_config并执行sql脚本

表结构如下:
在这里插入图片描述

3.启动nacos命令

在三台服务器上都启动,三台服务启动时候把--name nacos-1换一下,区分容器

docker run \
--restart=always \
--name nacos-1 \
-p 8848:8848 \
--env MODE=cluster \
--env NACOS_SERVERS=192.168.56.102:8848,192.168.56.105:8848,192.168.56.106:8848 \
--env SPRING_DATASOURCE_PLATFORM=mysql \
--env MYSQL_SERVICE_HOST=192.168.56.102 \
--env MYSQL_SERVICE_PORT=3306 \
--env MYSQL_SERVICE_DB_NAME=nacos_config \
--env MYSQL_SERVICE_USER=root \
--env MYSQL_SERVICE_PASSWORD=root \
--env JVM_XMS=512m \
--env JVM_XMX=512m \
--env JVM_XMN=256m \
-v /usr/local/docker/nacos/logs:/home/nacos/logs \
-v /usr/local/docker/nacos/data:/home/nacos/data \
-v /usr/local/docker/nacos/conf:/home/nacos/init.d \
-d nacos/nacos-server:1.4.0 

如果NACOS_SERVERS不想配置IP,可以换成 hostname,增加参数
前提还有docker swarm集群搭建好,不然无法识别nacos-1,nacos-2,nacos-3

--hostname nacos-1 \
--env NACOS_SERVERS=nacos-1:8848,nacos-2:8848,nacos-3:8848 \

查看日志是否启动成功:

cat /usr/local/docker/nacos/logs/nacos.log

日志展示:INFO Nacos started successfully in cluster mode. use external storage就是成功了

202-12-09 09:38:59,565 INFO Tomcat started on port(s): 8848 (http) with context path '/nacos'
2020-12-09 09:38:59,569 INFO Started Nacos in 10.311 seconds (JVM running for 11.532)
2020-12-09 09:38:59,569 INFO Nacos Log files: /home/nacos/logs
2020-12-09 09:38:59,570 INFO Nacos Log files: /home/nacos/conf
2020-12-09 09:38:59,570 INFO Nacos Log files: /home/nacos/data
2020-12-09 09:38:59,570 INFO Nacos started successfully in cluster mode. use external storage

4.访问nacos

http://192.168.56.102:8848/nacos/index.html
在集群管理的节点列表里,可以看到每个节点情况
在这里插入图片描述

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐