本篇文章为你整理了Docker 环境 Nacos2 MySQL8(docker配置nacos)的详细内容,包含有docker安装nacos mysql docker配置nacos docker swarm nacos docker mysql8.0 Docker 环境 Nacos2 MySQL8,希望能帮助你了解 Docker 环境 Nacos2 MySQL8。
程序员优雅哥 (youyacoder)
程序员优雅哥 (公众号同名,第一时间更新)
十年程序员,呆过央企外企私企,做过前端后端架构。分享vue、Java等前后端技术和架构
本文介绍 docker 环境下安装并单机运行 Nacos2,使用 docker 环境下的 MySQL 8 存储数据。
本文介绍 docker 环境下安装并单机运行 Nacos2,使用 docker 环境下的 MySQL 8 存储数据。
1 拉取镜像
1.1 创建目录
在硬盘上创建 nacos 的有关目录:
mkdir -p /Users/yygnb/dockerMe/nacos/conf /Users/yygnb/dockerMe/nacos/logs /Users/yygnb/dockerMe/nacos/data /Users/yygnb/dockerMe/nacos/init.d
为该目录添加权限:
chown 200 -R /Users/yygnb/dockerMe/nacos
1.2 拉取镜像
搜索镜像:
docker search nacos
搜索结果:
2 配置文件
2.1 nacos-logback.xml
在 conf 目录中创建配置文件 nacos-logback.xml:
?xml version="1.0" encoding="UTF-8"?
configuration scan="true" scanPeriod="10 seconds"
springProperty scope="context" name="logPath" source="nacos.logs.path" defaultValue="${nacos.home}/logs"/
property name="LOG_HOME" value="${logPath}"/
appender name="cmdb-main"
file ${nacos.home}/logs/cmdb-main.log /file
append true /append
rollingPolicy
fileNamePattern ${nacos.home}/logs/cmdb-main.log.%d{yyyy-MM-dd}.%i /fileNamePattern
maxFileSize 2GB /maxFileSize
maxHistory 7 /maxHistory
totalSizeCap 7GB /totalSizeCap
cleanHistoryOnStart true /cleanHistoryOnStart
/rollingPolicy
encoder
Pattern %date %level %msg%n%n /Pattern
charset UTF-8 /charset
/encoder
/appender
appender name="rootFile"
file ${LOG_HOME}/nacos.log /file
append true /append
rollingPolicy
fileNamePattern ${LOG_HOME}/nacos.log.%d{yyyy-MM-dd}.%i /fileNamePattern
maxFileSize 50MB /maxFileSize
maxHistory 7 /maxHistory
totalSizeCap 512MB /totalSizeCap
cleanHistoryOnStart true /cleanHistoryOnStart
/rollingPolicy
encoder
Pattern %date %level %msg%n%n /Pattern
charset UTF-8 /charset
/encoder
/appender
appender name="CONSOLE"
encoder
Pattern %date %level %msg%n%n /Pattern
charset UTF-8 /charset
/encoder
/appender
appender name="naming-server"
file ${LOG_HOME}/naming-server.log /file
append true /append
rollingPolicy
fileNamePattern ${LOG_HOME}/naming-server.log.%d{yyyy-MM-dd}.%i /fileNamePattern
maxFileSize 1GB /maxFileSize
maxHistory 7 /maxHistory
totalSizeCap 7GB /totalSizeCap
cleanHistoryOnStart true /cleanHistoryOnStart
/rollingPolicy
encoder
Pattern %date %level %msg%n%n /Pattern
charset UTF-8 /charset
/encoder
/appender
springProfile name="standalone"
logger name="org.springframework"
appender-ref ref="CONSOLE"/
level value="INFO"/
/logger
logger name="org.apache.catalina.startup.DigesterFactory"
appender-ref ref="CONSOLE"/
level value="INFO"/
/logger
logger name="org.apache.catalina.util.LifecycleBase"
appender-ref ref="CONSOLE"/
level value="ERROR"/
/logger
logger name="org.apache.coyote.http11.Http11NioProtocol"
appender-ref ref="CONSOLE"/
level value="WARN"/
/logger
logger name="org.apache.tomcat.util.net.NioSelectorPool"
appender-ref ref="CONSOLE"/
level value="WARN"/
/logger
/springProfile
logger name="com.alibaba.nacos.core.listener.StartingApplicationListener"
appender-ref ref="CONSOLE"/
level value="INFO"/
/logger
root
level value="INFO"/
appender-ref ref="rootFile"/
/root
/configuration
2.2 custom.properties
在 init.d 目录下创建 custom.properties 文件,该文件配置了 MySQL 数据库的信息。关于 Docker 中安装 MySQL 8 ,在之前的文章中已经描写。
server.contextPath=/nacos
server.servlet.contextPath=/nacos
server.port=8848
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://127.0.0.1/nacos?characterEncoding=utf8 connectTimeout=1000 socketTimeout=3000 autoReconnect=true
db.user=root
db.password=Mysql.123
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
注意修改上面配置文件中 db 相关的参数,如 url 地址、user 用户名、password 密码等。
3 准备数据库
3.1 创建数据库
create database `nacos`
default character set utf8mb4 collate utf8mb4_general_ci;
3.2 创建表结构
可以去 Nacos 的 github 官方下载:
https://github.com/alibaba/nacos/blob/master/distribution/conf/nacos-mysql.sql
如果网络不行,可以复制下面的 SQL 语句执行:
CREATE TABLE `config_info` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT id,
`data_id` varchar(255) NOT NULL COMMENT data_id,
`group_id` varchar(255) DEFAULT NULL,
`content` longtext NOT NULL COMMENT content,
`md5` varchar(32) DEFAULT NULL COMMENT md5,
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 创建时间,
`gmt_modified` datetime NOT NULL 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` text NOT NULL 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 */
/******************************************/
CREATE TABLE `config_info_aggr` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT id,
`data_id` varchar(255) NOT NULL COMMENT data_id,
`group_id` varchar(255) NOT NULL COMMENT group_id,
`datum_id` varchar(255) NOT NULL COMMENT datum_id,
`content` longtext NOT NULL COMMENT 内容,
`gmt_modified` datetime NOT NULL 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=增加租户字段;
CREATE TABLE `config_info_beta` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT id,
`data_id` varchar(255) NOT NULL COMMENT data_id,
`group_id` varchar(128) NOT NULL COMMENT group_id,
`app_name` varchar(128) DEFAULT NULL COMMENT app_name,
`content` longtext NOT NULL COMMENT content,
`beta_ips` varchar(1024) DEFAULT NULL COMMENT betaIps,
`md5` varchar(32) DEFAULT NULL COMMENT md5,
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 创建时间,
`gmt_modified` datetime NOT NULL 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` text NOT NULL 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 */
/******************************************/
CREATE TABLE `config_info_tag` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT id,
`data_id` varchar(255) NOT NULL COMMENT data_id,
`group_id` varchar(128) NOT NULL COMMENT group_id,
`tenant_id` varchar(128) DEFAULT COMMENT tenant_id,
`tag_id` varchar(128) NOT NULL COMMENT tag_id,
`app_name` varchar(128) DEFAULT NULL COMMENT app_name,
`content` longtext NOT NULL COMMENT content,
`md5` varchar(32) DEFAULT NULL COMMENT md5,
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 创建时间,
`gmt_modified` datetime NOT NULL 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 */
/******************************************/
CREATE TABLE `config_tags_relation` (
`id` bigint(20) NOT NULL COMMENT id,
`tag_name` varchar(128) NOT NULL COMMENT tag_name,
`tag_type` varchar(64) DEFAULT NULL COMMENT tag_type,
`data_id` varchar(255) NOT NULL COMMENT data_id,
`group_id` varchar(128) NOT NULL COMMENT group_id,
`tenant_id` varchar(128) DEFAULT COMMENT tenant_id,
`nid` bigint(20) NOT NULL 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 */
/******************************************/
CREATE TABLE `group_capacity` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 主键ID,
`group_id` varchar(128) NOT NULL DEFAULT COMMENT Group ID,空字符表示整个集群,
`quota` int(10) unsigned NOT NULL DEFAULT 0 COMMENT 配额,0表示使用默认值,
`usage` int(10) unsigned NOT NULL DEFAULT 0 COMMENT 使用量,
`max_size` int(10) unsigned NOT NULL DEFAULT 0 COMMENT 单个配置大小上限,单位为字节,0表示使用默认值,
`max_aggr_count` int(10) unsigned NOT NULL DEFAULT 0 COMMENT 聚合子配置最大个数,,0表示使用默认值,
`max_aggr_size` int(10) unsigned NOT NULL DEFAULT 0 COMMENT 单个聚合数据的子配置大小上限,单位为字节,0表示使用默认值,
`max_history_count` int(10) unsigned NOT NULL DEFAULT 0 COMMENT 最大变更历史数量,
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 创建时间,
`gmt_modified` datetime NOT NULL 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 */
/******************************************/
CREATE TABLE `his_config_info` (
`id` bigint(20) unsigned NOT NULL,
`nid` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`data_id` varchar(255) NOT NULL,
`group_id` varchar(128) NOT NULL,
`app_name` varchar(128) DEFAULT NULL COMMENT app_name,
`content` longtext NOT NULL,
`md5` varchar(32) DEFAULT NULL,
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`gmt_modified` datetime NOT NULL 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` text NOT NULL 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=多租户改造;
CREATE TABLE `tenant_capacity` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 主键ID,
`tenant_id` varchar(128) NOT NULL DEFAULT COMMENT Tenant ID,
`quota` int(10) unsigned NOT NULL DEFAULT 0 COMMENT 配额,0表示使用默认值,
`usage` int(10) unsigned NOT NULL DEFAULT 0 COMMENT 使用量,
`max_size` int(10) unsigned NOT NULL DEFAULT 0 COMMENT 单个配置大小上限,单位为字节,0表示使用默认值,
`max_aggr_count` int(10) unsigned NOT NULL DEFAULT 0 COMMENT 聚合子配置最大个数,
`max_aggr_size` int(10) unsigned NOT NULL DEFAULT 0 COMMENT 单个聚合数据的子配置大小上限,单位为字节,0表示使用默认值,
`max_history_count` int(10) unsigned NOT NULL DEFAULT 0 COMMENT 最大变更历史数量,
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 创建时间,
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 修改时间,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_tenant_id` (`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT=租户容量信息表;
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT id,
`kp` varchar(128) NOT NULL 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) NOT NULL COMMENT 创建时间,
`gmt_modified` bigint(20) NOT NULL 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;
CREATE TABLE `users` (
`username` varchar(50) NOT NULL PRIMARY KEY,
`password` varchar(500) NOT NULL,
`enabled` boolean NOT NULL
CREATE TABLE `roles` (
`username` varchar(50) NOT NULL,
`role` varchar(50) NOT NULL,
UNIQUE INDEX `idx_user_role` (`username` ASC, `role` ASC) USING BTREE
CREATE TABLE `permissions` (
`role` varchar(50) NOT NULL,
`resource` varchar(255) NOT NULL,
`action` varchar(8) NOT NULL,
UNIQUE INDEX `uk_role_permission` (`role`,`resource`,`action`) USING BTREE
INSERT INTO users (username, password, enabled) VALUES (nacos, $2a$10$EuWPZHzz32dJN7jexM34MOeYirDdFAZm2kuWj7VEOJhhZkDrxfvUu, TRUE);
INSERT INTO roles (username, role) VALUES (nacos, ROLE_ADMIN);
4 启动容器
执行下列命令:
docker run -d -p 8848:8848 \
-e MODE=standalone \
-v /Users/yygnb/dockerMe/nacos/conf:/home/nacos/conf \
-v /Users/yygnb/dockerMe/nacos/logs:/home/nacos/logs \
-v /Users/yygnb/dockerMe/nacos/data:/home/nacos/data \
-v /Users/yygnb/dockerMe/nacos/init.d/custom.properties:/home/nacos/init.d/custom.properties \
--name nacos \
nacos/nacos-server:latest
查看容器运行状态:
docker ps grep nacos
查看 Nacos 运行的日志:
docker logs -f nacos
5 访问 Nacos
在浏览器中访问 Nacos:
http://localhost:8848/
默认用户名和密码都是 nacos。
感谢你阅读本文,如果本文给了你一点点帮助或者启发,还请三连支持一下,点赞、关注、收藏,作者会持续与大家分享更多干货
以上就是Docker 环境 Nacos2 MySQL8(docker配置nacos)的详细内容,想要了解更多 Docker 环境 Nacos2 MySQL8的内容,请持续关注盛行IT软件开发工作室。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。