centos7 用docker 部署 nacos集群--以mysql持久化--以nginx代理
创建一个文件夹,把四个配置文件放进去,然后运行:docker compose -f -d nacos.yml up
mysql-schema.sql
nacos.conf
nacos.env
nacos.yml
mysql-schema.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 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 | /* * 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 */ /******************************************/ CREATE database nacos_config; USE nacos_config; 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 (128) 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 (128) 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' ); |
nacos.conf 内容:
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 | worker_processes 1; events { worker_connections 1024; } http { upstream nacoscluster{ server nacos1:8848 weight=1 ; server nacos2:8848 weight=2 ; server nacos3:8848 weight=3 ; #server localhost:8080; #server localhost:8081; #ip_hash; } server { listen 80; server_name 192.168.65.150; location / { proxy_pass http: //nacoscluster/ ; proxy_connect_timeout 1s; proxy_send_timeout 1s; proxy_read_timeout 1s; } } } |
nacos.env 内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 | PREFER_HOST_MODE= hostname NACOS_AUTH_ENABLE= true NACOS_SERVERS= "nacos1:8848 nacos2:8848 nacos3:8848" SPRING_DATASOURCE_PLATFORM=mysql MYSQL_SERVICE_HOST=mysql MYSQL_SERVICE_DB_NAME=nacos_config MYSQL_SERVICE_PORT=3306 MYSQL_SERVICE_USER=root MYSQL_SERVICE_PASSWORD=Root@123 MYSQL_SERVICE_DB_PARAM= "characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false&allowPublicKeyRetrieval=true" NACOS_AUTH_IDENTITY_KEY=2222 NACOS_AUTH_IDENTITY_VALUE=2xxx NACOS_AUTH_TOKEN=SecretKey012345678901234567890123456789012345678901234567890123456789 |
nacos.yml 内容:
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 | version: '3.6' networks: nacos: driver: bridge services: nacos1: image: nacos /nacos-server :v2.2.3 hostname : nacos1 container_name: nacos1 volumes: - /root/prome/cluster .conf: /home/conf/cluster .conf ports: - 8848:8848 - 9848:9848 - 7848:7848 - 9839:9849 #network_mode: host environment: - PREFER_HOST_MODE= hostname - MODE=cluster env_file: - . /nacos . env networks: - nacos nacos2: image: nacos /nacos-server :v2.2.3 hostname : nacos2 container_name: nacos2 volumes: - /root/prome/cluster .conf: /home/conf/cluster .conf ports: - 8849:8848 - 9849:9848 - 7849:7848 - 9859:9849 #network_mode: host environment: - PREFER_HOST_MODE= hostname - MODE=cluster env_file: - . /nacos . env networks: - nacos nacos3: image: nacos /nacos-server :v2.2.3 hostname : nacos3 container_name: nacos3 volumes: - /root/prome/cluster .conf: /home/conf/cluster .conf ports: - 8850:8848 - 9850:9850 - 7850:7848 - 9869:9849 #network_mode: host environment: - MODE=cluster env_file: - . /nacos . env networks: - nacos mysql: image: mysql:8.0.2 hostname : mysql container_name: mysql # network_mode: host ports: - "3306:3306" volumes: - . /mysql-schema .sql: /docker-entrypoint-initdb .d /mysql-schema .sql environment: - MYSQL_ROOT_PASSWORD=Root@123 - MYSQL_DATABSE=nacos_config networks: - nacos nginx: image: nginx:latest container_name: nginx # network_mode: host ports: - "80:80" volumes: - . /nacos .conf: /etc/nginx/nginx .conf networks: - nacos |
结果:
分类:
2023Linux基础
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
2018-07-26 Linux下Apache PHP MYSQL 默认安装路径
2018-07-26 *****运维人员如何最大限度避免误删除文件?
2018-07-26 在Ubuntu下如何压缩一个文件夹