使用docker部署nacos

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 使用docker部署nacos

docker部署单节点nacos

一、准备数据库

1) 新建数据库nacos


2) 导入nacos-mysql.sql

/* * Copyright 1999-2018 Alibaba Group Holding Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * *      http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *//******************************************//*   数据库全名 = nacos_config   *//*   表名称 = config_info   *//******************************************/CREATETABLE `config_info` (  `id` bigint(20)NOTNULL AUTO_INCREMENT COMMENT 'id',  `data_id` varchar(255)NOTNULL COMMENT 'data_id',  `group_id` varchar(255) DEFAULT NULL,  `content` longtextNOTNULL COMMENT 'content',  `md5` varchar(32) DEFAULT NULL COMMENT 'md5',  `gmt_create` datetimeNOTNULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',  `gmt_modified` datetimeNOTNULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',  `src_user` text COMMENT 'source user',  `src_ip` varchar(50) DEFAULT NULL COMMENT 'source ip',  `app_name` varchar(128) DEFAULT NULL,  `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',  `c_desc` varchar(256) DEFAULT NULL,  `c_use` varchar(64) DEFAULT NULL,  `effect` varchar(64) DEFAULT NULL,  `type` varchar(64) DEFAULT NULL,  `c_schema` text,  `encrypted_data_key` textNOTNULL COMMENT '秘钥',  PRIMARY KEY (`id`),  UNIQUE KEY `uk_configinfo_datagrouptenant` (`data_id`,`group_id`,`tenant_id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info';/******************************************//*   数据库全名 = nacos_config   *//*   表名称 = config_info_aggr   *//******************************************/CREATETABLE `config_info_aggr` (  `id` bigint(20)NOTNULL AUTO_INCREMENT COMMENT 'id',  `data_id` varchar(255)NOTNULL COMMENT 'data_id',  `group_id` varchar(255)NOTNULL COMMENT 'group_id',  `datum_id` varchar(255)NOTNULL COMMENT 'datum_id',  `content` longtextNOTNULL COMMENT '内容',  `gmt_modified` datetimeNOTNULL COMMENT '修改时间',  `app_name` varchar(128) DEFAULT NULL,  `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',  PRIMARY KEY (`id`),  UNIQUE KEY `uk_configinfoaggr_datagrouptenantdatum` (`data_id`,`group_id`,`tenant_id`,`datum_id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='增加租户字段';/******************************************//*   数据库全名 = nacos_config   *//*   表名称 = config_info_beta   *//******************************************/CREATETABLE `config_info_beta` (  `id` bigint(20)NOTNULL AUTO_INCREMENT COMMENT 'id',  `data_id` varchar(255)NOTNULL COMMENT 'data_id',  `group_id` varchar(128)NOTNULL COMMENT 'group_id',  `app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',  `content` longtextNOTNULL COMMENT 'content',  `beta_ips` varchar(1024) DEFAULT NULL COMMENT 'betaIps',  `md5` varchar(32) DEFAULT NULL COMMENT 'md5',  `gmt_create` datetimeNOTNULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',  `gmt_modified` datetimeNOTNULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',  `src_user` text COMMENT 'source user',  `src_ip` varchar(50) DEFAULT NULL COMMENT 'source ip',  `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',  `encrypted_data_key` textNOTNULL COMMENT '秘钥',  PRIMARY KEY (`id`),  UNIQUE KEY `uk_configinfobeta_datagrouptenant` (`data_id`,`group_id`,`tenant_id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info_beta';/******************************************//*   数据库全名 = nacos_config   *//*   表名称 = config_info_tag   *//******************************************/CREATETABLE `config_info_tag` (  `id` bigint(20)NOTNULL AUTO_INCREMENT COMMENT 'id',  `data_id` varchar(255)NOTNULL COMMENT 'data_id',  `group_id` varchar(128)NOTNULL COMMENT 'group_id',  `tenant_id` varchar(128) DEFAULT '' COMMENT 'tenant_id',  `tag_id` varchar(128)NOTNULL COMMENT 'tag_id',  `app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',  `content` longtextNOTNULL COMMENT 'content',  `md5` varchar(32) DEFAULT NULL COMMENT 'md5',  `gmt_create` datetimeNOTNULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',  `gmt_modified` datetimeNOTNULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',  `src_user` text COMMENT 'source user',  `src_ip` varchar(50) DEFAULT NULL COMMENT 'source ip',  PRIMARY KEY (`id`),  UNIQUE KEY `uk_configinfotag_datagrouptenanttag` (`data_id`,`group_id`,`tenant_id`,`tag_id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info_tag';/******************************************//*   数据库全名 = nacos_config   *//*   表名称 = config_tags_relation   *//******************************************/CREATETABLE `config_tags_relation` (  `id` bigint(20)NOTNULL COMMENT 'id',  `tag_name` varchar(128)NOTNULL COMMENT 'tag_name',  `tag_type` varchar(64) DEFAULT NULL COMMENT 'tag_type',  `data_id` varchar(255)NOTNULL COMMENT 'data_id',  `group_id` varchar(128)NOTNULL COMMENT 'group_id',  `tenant_id` varchar(128) DEFAULT '' COMMENT 'tenant_id',  `nid` bigint(20)NOTNULL AUTO_INCREMENT,  PRIMARY KEY (`nid`),  UNIQUE KEY `uk_configtagrelation_configidtag` (`id`,`tag_name`,`tag_type`),  KEY `idx_tenant_id` (`tenant_id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_tag_relation';/******************************************//*   数据库全名 = nacos_config   *//*   表名称 = group_capacity   *//******************************************/CREATETABLE `group_capacity` (  `id` bigint(20)unsignedNOTNULL AUTO_INCREMENT COMMENT '主键ID',  `group_id` varchar(128)NOTNULL DEFAULT '' COMMENT 'Group ID,空字符表示整个集群',  `quota` int(10)unsignedNOTNULL DEFAULT '0' COMMENT '配额,0表示使用默认值',  `usage` int(10)unsignedNOTNULL DEFAULT '0' COMMENT '使用量',  `max_size` int(10)unsignedNOTNULL DEFAULT '0' COMMENT '单个配置大小上限,单位为字节,0表示使用默认值',  `max_aggr_count` int(10)unsignedNOTNULL DEFAULT '0' COMMENT '聚合子配置最大个数,,0表示使用默认值',  `max_aggr_size` int(10)unsignedNOTNULL DEFAULT '0' COMMENT '单个聚合数据的子配置大小上限,单位为字节,0表示使用默认值',  `max_history_count` int(10)unsignedNOTNULL DEFAULT '0' COMMENT '最大变更历史数量',  `gmt_create` datetimeNOTNULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',  `gmt_modified` datetimeNOTNULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',  PRIMARY KEY (`id`),  UNIQUE KEY `uk_group_id` (`group_id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='集群、各Group容量信息表';/******************************************//*   数据库全名 = nacos_config   *//*   表名称 = his_config_info   *//******************************************/CREATETABLE `his_config_info` (  `id` bigint(20)unsignedNOTNULL,  `nid` bigint(20)unsignedNOTNULL AUTO_INCREMENT,  `data_id` varchar(255)NOTNULL,  `group_id` varchar(128)NOTNULL,  `app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',  `content` longtextNOTNULL,  `md5` varchar(32) DEFAULT NULL,  `gmt_create` datetimeNOTNULL DEFAULT CURRENT_TIMESTAMP,  `gmt_modified` datetimeNOTNULL DEFAULT CURRENT_TIMESTAMP,  `src_user` text,  `src_ip` varchar(50) DEFAULT NULL,  `op_type` char(10) DEFAULT NULL,  `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',  `encrypted_data_key` textNOTNULL COMMENT '秘钥',  PRIMARY KEY (`nid`),  KEY `idx_gmt_create` (`gmt_create`),  KEY `idx_gmt_modified` (`gmt_modified`),  KEY `idx_did` (`data_id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='多租户改造';/******************************************//*   数据库全名 = nacos_config   *//*   表名称 = tenant_capacity   *//******************************************/CREATETABLE `tenant_capacity` (  `id` bigint(20)unsignedNOTNULL AUTO_INCREMENT COMMENT '主键ID',  `tenant_id` varchar(128)NOTNULL DEFAULT '' COMMENT 'Tenant ID',  `quota` int(10)unsignedNOTNULL DEFAULT '0' COMMENT '配额,0表示使用默认值',  `usage` int(10)unsignedNOTNULL DEFAULT '0' COMMENT '使用量',  `max_size` int(10)unsignedNOTNULL DEFAULT '0' COMMENT '单个配置大小上限,单位为字节,0表示使用默认值',  `max_aggr_count` int(10)unsignedNOTNULL DEFAULT '0' COMMENT '聚合子配置最大个数',  `max_aggr_size` int(10)unsignedNOTNULL DEFAULT '0' COMMENT '单个聚合数据的子配置大小上限,单位为字节,0表示使用默认值',  `max_history_count` int(10)unsignedNOTNULL DEFAULT '0' COMMENT '最大变更历史数量',  `gmt_create` datetimeNOTNULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',  `gmt_modified` datetimeNOTNULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',  PRIMARY KEY (`id`),  UNIQUE KEY `uk_tenant_id` (`tenant_id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='租户容量信息表';CREATETABLE `tenant_info` (  `id` bigint(20)NOTNULL AUTO_INCREMENT COMMENT 'id',  `kp` varchar(128)NOTNULL COMMENT 'kp',  `tenant_id` varchar(128) default '' COMMENT 'tenant_id',  `tenant_name` varchar(128) default '' COMMENT 'tenant_name',  `tenant_desc` varchar(256) DEFAULT NULL COMMENT 'tenant_desc',  `create_source` varchar(32) DEFAULT NULL COMMENT 'create_source',  `gmt_create` bigint(20)NOTNULL COMMENT '创建时间',  `gmt_modified` bigint(20)NOTNULL COMMENT '修改时间',  PRIMARY KEY (`id`),  UNIQUE KEY `uk_tenant_info_kptenantid` (`kp`,`tenant_id`),  KEY `idx_tenant_id` (`tenant_id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='tenant_info';CREATETABLE `users` (  `username` varchar(50)NOTNULL PRIMARY KEY,  `password` varchar(500)NOTNULL,  `enabled` booleanNOTNULL);CREATETABLE `roles` (  `username` varchar(50)NOTNULL,  `role` varchar(50)NOTNULL,  UNIQUE INDEX `idx_user_role` (`username` ASC, `role` ASC) USING BTREE
);CREATETABLE `permissions` (    `role` varchar(50)NOTNULL,    `resource` varchar(255)NOTNULL,    `action` varchar(8)NOTNULL,    UNIQUE INDEX `uk_role_permission` (`role`,`resource`,`action`) USING BTREE
);INSERTINTO users (username, password, enabled)VALUES('nacos','$2a$10$EuWPZHzz32dJN7jexM34MOeYirDdFAZm2kuWj7VEOJhhZkDrxfvUu',TRUE);INSERTINTO roles (username, role)VALUES('nacos','ROLE_ADMIN');

二 、拉取镜像

docker pull nacos/nacos-server

三、配置

mkdir-p /server/nacos/conf

新增配置文件:

重点关注以下配置:

spring.datasource.platform=mysql

db.url.0=

db.user=root

db.password=123456


application.properties

#springserver.servlet.contextPath=${SERVER_SERVLET_CONTEXTPATH:/nacos}
server.contextPath=/nacosserver.port=${NACOS_APPLICATION_PORT:8848}
server.tomcat.accesslog.max-days=30server.tomcat.accesslog.pattern=%h%l%u%t"%r"%s%b%D%{User-Agent}i%{Request-Source}ispring.datasource.platform=mysqlnacos.cmdb.dumpTaskInterval=3600nacos.cmdb.eventTaskInterval=10nacos.cmdb.labelTaskInterval=300nacos.cmdb.loadDataAtStart=falsedb.num=${MYSQL_DATABASE_NUM:1}
db.url.0=jdbc:mysql://<ip>:<port>/<db>?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false#db.url.1=jdbc:mysql://${MYSQL_SERVICE_HOST}:${MYSQL_SERVICE_PORT:3306}/${MYSQL_SERVICE_DB_NAME}?${MYSQL_SERVICE_DB_PARAM:characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false}db.user=rootdb.password=123456###Theauthsystemtouse, currentlyonly'nacos'and'ldap'issupported:
nacos.core.auth.system.type=${NACOS_AUTH_SYSTEM_TYPE:nacos}
###workedwhennacos.core.auth.system.type=nacos###Thetokenexpirationinseconds:
nacos.core.auth.plugin.nacos.token.expire.seconds=${NACOS_AUTH_TOKEN_EXPIRE_SECONDS:18000}
###Thedefaulttoken:
nacos.core.auth.plugin.nacos.token.secret.key=${NACOS_AUTH_TOKEN:SecretKey012345678901234567890123456789012345678901234567890123456789}
###Turnon/offcachingofauthinformation. Byturningonthisswitch, theupdateofauthinformationwouldhavea15secondsdelay.
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:serverIdentity}
nacos.core.auth.server.identity.value=${NACOS_AUTH_IDENTITY_VALUE:security}
server.tomcat.accesslog.enabled=${TOMCAT_ACCESSLOG_ENABLED:false}
#defaultcurrentworkdirserver.tomcat.basedir=file:.
##springsecurityconfig###turnoffsecuritynacos.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 searchmanagement.metrics.export.elastic.enabled=falsemanagement.metrics.export.influx.enabled=falsenacos.naming.distro.taskDispatchThreadCount=10nacos.naming.distro.taskDispatchPeriod=200nacos.naming.distro.batchSyncKeyCount=1000nacos.naming.distro.initDataRatio=0.9nacos.naming.distro.syncRetryDelay=5000nacos.naming.data.warmup=true

四、启动

dockerrun-d-v/server/nacos/conf/application.properties:/home/nacos/conf/application.properties--privileged=true--namenacos-p8848:8848-ePREFER_HOST_MODE=hostname-eMODE=standalonenacos/nacos-server

五、访问

http://:8848/nacos

image.png

六、测试

在nacos中新建test.yml

image.png

在服务器输入命令:

curl-XGET"http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=test.yml&group=DEFAULT_GROUP"

得到结果:

image.png

image.png

证明部署成功!:)

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
26天前
|
人工智能 API 数据安全/隐私保护
使用 Docker 一键免费部署 63.8k 的私人 ChatGPT 网页应用
NextChat 是一个可以在 GitHub 上一键免费部署的私人 ChatGPT 网页应用,支持 GPT3、GPT4 和 Gemini Pro 模型。该项目在 GitHub 上获得了 63.8k 的 star 数。部署简单,只需拉取 Docker 镜像并运行容器,设置 API Key 后即可使用。此外,NextChat 还提供了预设角色的面具功能,方便用户快速创建对话。
113 22
使用 Docker 一键免费部署 63.8k 的私人 ChatGPT 网页应用
|
1月前
|
SQL 关系型数据库 数据库
国产数据实战之docker部署MyWebSQL数据库管理工具
【10月更文挑战第23天】国产数据实战之docker部署MyWebSQL数据库管理工具
108 4
国产数据实战之docker部署MyWebSQL数据库管理工具
|
27天前
|
运维 开发者 Docker
Docker Compose:简化容器化应用的部署与管理
Docker Compose:简化容器化应用的部署与管理
|
27天前
|
Docker 微服务 容器
使用Docker Compose实现微服务架构的快速部署
使用Docker Compose实现微服务架构的快速部署
54 1
|
1月前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
65 2
|
1月前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
37 3
|
2月前
|
关系型数据库 MySQL Linux
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
331 3
|
2月前
|
弹性计算 数据库连接 Nacos
阿里云ECS服务器在docker中部署nacos
docker pull nacos 失败,docker部署nacos遇到的问题,nacos数据库连接,nacos端口映射
137 1
|
27天前
|
前端开发 开发者 Docker
深入探索Docker Compose:简化多容器应用的部署
深入探索Docker Compose:简化多容器应用的部署
58 0
|
1月前
|
负载均衡 应用服务中间件 Nacos
Nacos配置中心
Nacos配置中心
64 1
Nacos配置中心