Docker 环境 Nacos2 MySQL8的详细操作

本文介绍 docker 环境下安装并单机运行 Nacos2,使用 docker 环境下的 MySQL 8 存储数据。

1 拉取镜像

1.1 创建目录

在硬盘上创建 nacos 的有关目录:

?
1
mkdir -p /Users/yygnb/dockerMe/nacos/conf /Users/yygnb/dockerMe/nacos/logs /Users/yygnb/dockerMe/nacos/data /Users/yygnb/dockerMe/nacos/init.d

为该目录添加权限:

?
1
chown 200 -R /Users/yygnb/dockerMe/nacos

1.2 拉取镜像

搜索镜像:

?
1
docker search nacos

搜索结果:

%Docker 环境 Nacos2 MySQL8的详细操作-猿站网-插图

2 配置文件

2.1 nacos-logback.xml

在 conf 目录中创建配置文件 nacos-logback.xml:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
<?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”
class=”ch.qos.logback.core.rolling.RollingFileAppender”>
<file>${nacos.home}/logs/cmdb-main.log</file>
<append>true</append>
<rollingPolicy class=”ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy”>
<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”
class=”ch.qos.logback.core.rolling.RollingFileAppender”>
<file>${LOG_HOME}/nacos.log</file>
<append>true</append>
<rollingPolicy class=”ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy”>
<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” class=”ch.qos.logback.core.ConsoleAppender”>
<encoder>
<Pattern>%date %level %msg%n%n</Pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<appender name=”naming-server”
class=”ch.qos.logback.core.rolling.RollingFileAppender”>
<file>${LOG_HOME}/naming-server.log</file>
<append>true</append>
<rollingPolicy class=”ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy”>
<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 ,在之前的文章中已经描写。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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
nacos.cmdb.dumpTaskInterval=3600
nacos.cmdb.eventTaskInterval=10
nacos.cmdb.labelTaskInterval=300
nacos.cmdb.loadDataAtStart=false
management.metrics.export.elastic.enabled=false
management.metrics.export.influx.enabled=false
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 创建数据库

?
1
2
create database `nacos`
default character set utf8mb4 collate utf8mb4_general_ci;

3.2 创建表结构

可以去 Nacos 的 github 官方下载:

?
1
https://github.com/alibaba/nacos/blob/master/distribution/conf/nacos-mysql.sql

如果网络不行,可以复制下面的 SQL 语句执行:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
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=增加租户字段;
/******************************************/
/*   数据库全名 = nacos_config   */
/*   表名称 = config_info_beta   */
/******************************************/
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=多租户改造;
/******************************************/
/*   数据库全名 = nacos_config   */
/*   表名称 = tenant_capacity   */
/******************************************/
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=租户容量信息表;
CREATE TABLE `tenant_info` (
`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 启动容器

执行下列命令:

?
1
2
3
4
5
6
7
8
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

查看容器运行状态:

?
1
docker ps | grep nacos

%Docker 环境 Nacos2 MySQL8的详细操作-1猿站网-插图

查看 Nacos 运行的日志:

?
1
docker logs -f nacos

%Docker 环境 Nacos2 MySQL8的详细操作-2猿站网-插图

5 访问 Nacos

在浏览器中访问 Nacos:

?
1
http://localhost:8848/

默认用户名和密码都是 nacos。

%Docker 环境 Nacos2 MySQL8的详细操作-3猿站网-插图

到此这篇关于Docker 环境 Nacos2 MySQL8的文章就介绍到这了,更多相关Docker 环境 Nacos2内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://www.cnblogs.com/youyacoder/archive/2022/09/08/16669665.html

声明: 猿站网有关资源均来自网络搜集与网友提供,任何涉及商业盈利目的的均不得使用,否则产生的一切后果将由您自己承担! 本平台资源仅供个人学习交流、测试使用 所有内容请在下载后24小时内删除,制止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任!也请大家支持、购置正版! 。本站一律禁止以任何方式发布或转载任何违法的相关信息访客发现请向站长举报,会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。本网站的资源部分来源于网络,如有侵权烦请发送邮件至:2697268773@qq.com进行处理。
建站知识

小知识:什么是vbscript?

2023-3-3 15:16:38

建站知识

小知识:什么是最大BD复写速度

2023-3-3 15:21:51

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索