docker安裝nacos并配置數(shù)據(jù)庫的全過程
1、下載鏡像
docker pull nacos/nacos-server
查看下載鏡像
docker images
2、啟動nacos
注意:如果nacos版本在2.0及以上,需要把8848、9848和9849三個端口映射出來,否則訪問會404失敗
也可以直接使用步驟3中的啟動命令,可以掛載目錄和設(shè)置啟動內(nèi)存,但是在我的機器上掛載目錄,nacos就出錯,很難受
docker run --env MODE=standalone \ --name nacos -d -p 8848:8848 \ -p 9848:9848 -p 9849:9849 \ nacos/nacos-server
查看nacos運行狀態(tài)
docker ps
3、掛載nacos
經(jīng)測試,在我的機器上直接進行掛載,nacos會啟動異常,我猜測是掛載了conf文件,導(dǎo)致nacos容器啟動時,容器中的/home/nacos/conf文件中沒有配置文件,因此,先執(zhí)行上述步驟2中的nacos容器啟動命令,再把容器中的配置文件拷貝到宿主中(掛載目錄),這樣在掛載時,外部的conf掛載目錄存在了nacos的配置信息
3.1>新建nacos掛載目錄
只需要新建conf的掛載即可,其他目錄的掛載會自動生成目錄(如logs)
mkdir /mydata/nacos/conf
3.2>把nacos容器中的/home/nacos/conf文件夾拷貝
上述步驟2中,已經(jīng)啟動了nacos容器,我們把容器中的配置文件拷貝出來即可
docker cp nacos:/home/nacos/conf/ /mydata/nacos/
注意:宿主路徑填寫/mydata/nacos,后面不需要寫conf,會自動覆蓋
我們看下、mydata/nacos/conf文件下,nacos完整的配置信息已拷貝過來:
3.3>刪除nacos容器
先停止nacos容器
docker stop nacos
再刪除nacos容器
docker remove nacos
3.4>重新run nacos容器(掛載目錄的方式)
docker run --name nacos -p 8848:8848 \ -p 9848:9848 -p 9849:9849 \ --privileged=true \ --restart=always \ -e MODE=standalone \ -e PREFER_HOST_MODE=hostname \ -e JVM_XMS=256m \ -e JVM_XMX=1024m \ -v /mydata/nacos/logs:/home/nacos/logs \ -v /mydata/nacos/conf/:/home/nacos/conf \ -d nacos/nacos-server
參數(shù)詳解(根據(jù)自己的需要,選擇參數(shù)):
-p 8848:8848 # 宿主機端口:容器端口
–name nacos # 容器名字
–privileged=true # 使用該參數(shù),container內(nèi)的root擁有真正的root權(quán)限
–network host # 設(shè)置屬于該容器的網(wǎng)絡(luò)
–restart=always # 總是重啟
-e PREFER_HOST_MODE=hostname # 是否支持 hostname,可選參數(shù)為hostname/ip,默認值是當前宿主機的ip
-e MODE=standalone # 使用 standalone模式(單機模式),MODE值有cluster模式/standalone模式兩種
-e JVM_XMS=256m # -Xms 為jvm啟動時分配的內(nèi)存[我設(shè)置會導(dǎo)致nacos啟動異常,無法訪問,故沒有設(shè)置]
-e JVM_XMX=1024m # -Xmx 為jvm運行過程中分配的最大內(nèi)存[我設(shè)置會導(dǎo)致nacos啟動異常,無法訪問,故沒有設(shè)置]
-d nacos/nacos-server # 后臺啟動模式及使用的鏡像
-v /mydata/nacos/logs:/home/nacos/logs \-v:掛載宿主機的一個目錄, 持久化存儲的關(guān)鍵所在,將主機目錄掛載到容器對應(yīng)目錄,分別是:配置文件、日志文件
–restart=always:容器自動啟動參數(shù),其值可以為[no,on-failure,always]
no為默認值,表示容器退出時,docker不自動重啟容器
on-failure表示,若容器的退出狀態(tài)非0,則docker自動重啟容器,還可以指定重啟次數(shù),若超過指定次數(shù)未能啟動容器則放棄
always表示,只要容器退出,則docker將自動重啟容器
4、配置mysql
方式1:進入nacos容器修改配置
docker exec -it nacos bash
修改容器配置
vi conf/application.properties
方式2:修改宿主掛載目錄的配置文件即可
vi /mydata/nacos/conf/application.properties
文件內(nèi)容與方式1一樣
5、創(chuàng)建nacos數(shù)據(jù)庫
創(chuàng)建SQL腳本在官方的GitHub上,這里附上gitee地址:
https://gitee.com/mirrors/Nacos/blob/develop/distribution/conf/mysql-schema.sql#
把下面的SQL在mysql(nacos庫下)中執(zhí)行一次就可以了
/* * 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. */ /******************************************/ /* 表名稱 = config_info */ /******************************************/ 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 COMMENT 'group_id', `content` longtext NOT NULL COMMENT 'content', `md5` varchar(32) DEFAULT NULL COMMENT 'md5', `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創(chuàng)建時間', `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 COMMENT 'app_name', `tenant_id` varchar(128) DEFAULT '' COMMENT '租戶字段', `c_desc` varchar(256) DEFAULT NULL COMMENT 'configuration description', `c_use` varchar(64) DEFAULT NULL COMMENT 'configuration usage', `effect` varchar(64) DEFAULT NULL COMMENT '配置生效的描述', `type` varchar(64) DEFAULT NULL COMMENT '配置的類型', `c_schema` text COMMENT '配置的模式', `encrypted_data_key` text 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'; /******************************************/ /* 表名稱 = 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 '內(nèi)容', `gmt_modified` datetime NOT NULL COMMENT '修改時間', `app_name` varchar(128) DEFAULT NULL COMMENT 'app_name', `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='增加租戶字段'; /******************************************/ /* 表名稱 = 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 '創(chuàng)建時間', `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 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'; /******************************************/ /* 表名稱 = 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 '創(chuàng)建時間', `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'; /******************************************/ /* 表名稱 = 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 COMMENT 'nid, 自增長標識', 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'; /******************************************/ /* 表名稱 = 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 '單個配置大小上限,單位為字節(jié),0表示使用默認值', `max_aggr_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '聚合子配置最大個數(shù),,0表示使用默認值', `max_aggr_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '單個聚合數(shù)據(jù)的子配置大小上限,單位為字節(jié),0表示使用默認值', `max_history_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '最大變更歷史數(shù)量', `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創(chuàng)建時間', `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容量信息表'; /******************************************/ /* 表名稱 = his_config_info */ /******************************************/ CREATE TABLE `his_config_info` ( `id` bigint(20) unsigned NOT NULL COMMENT 'id', `nid` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'nid, 自增標識', `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', `md5` varchar(32) DEFAULT NULL COMMENT 'md5', `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創(chuàng)建時間', `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改時間', `src_user` text COMMENT 'source user', `src_ip` varchar(50) DEFAULT NULL COMMENT 'source ip', `op_type` char(10) DEFAULT NULL COMMENT 'operation type', `tenant_id` varchar(128) DEFAULT '' COMMENT '租戶字段', `encrypted_data_key` text 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='多租戶改造'; /******************************************/ /* 表名稱 = 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 '單個配置大小上限,單位為字節(jié),0表示使用默認值', `max_aggr_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '聚合子配置最大個數(shù)', `max_aggr_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '單個聚合數(shù)據(jù)的子配置大小上限,單位為字節(jié),0表示使用默認值', `max_history_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '最大變更歷史數(shù)量', `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創(chuàng)建時間', `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 '創(chuàng)建時間', `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 COMMENT 'username', `password` varchar(500) NOT NULL COMMENT 'password', `enabled` boolean NOT NULL COMMENT 'enabled' ); CREATE TABLE `roles` ( `username` varchar(50) NOT NULL COMMENT 'username', `role` varchar(50) NOT NULL COMMENT 'role', UNIQUE INDEX `idx_user_role` (`username` ASC, `role` ASC) USING BTREE ); CREATE TABLE `permissions` ( `role` varchar(50) NOT NULL COMMENT 'role', `resource` varchar(255) NOT NULL COMMENT 'resource', `action` varchar(8) NOT NULL COMMENT 'action', 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');
6、 重啟容器
docker restart nacos
7、訪問nacos
http://IP地址:8848/nacos
默認賬號:nacos
默認密碼:nacos
總結(jié)
到此這篇關(guān)于docker安裝nacos并配置數(shù)據(jù)庫的文章就介紹到這了,更多相關(guān)docker安裝nacos配置數(shù)據(jù)庫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Docker系列學(xué)習(xí)之Swarm mode管理節(jié)點常用命令詳解
這篇文章主要為大家介紹了Docker系列學(xué)習(xí)之Swarm mode管理節(jié)點常用命令詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-10-10docker部署Macvlan實現(xiàn)跨主機網(wǎng)絡(luò)通信的實現(xiàn)
這篇文章主要介紹了docker部署Macvlan實現(xiàn)跨主機網(wǎng)絡(luò)通信的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10Docker安裝Nginx并部署及MySQL容器構(gòu)建全過程
眾所周知Docker是一種容器化技術(shù),可以用來快速部署和管理應(yīng)用程序,這篇文章主要給大家介紹了關(guān)于Docker安裝Nginx并部署及MySQL容器構(gòu)建的相關(guān)資料,需要的朋友可以參考下2024-02-02Docker容器導(dǎo)致磁盤空間不足無法訪問的解決方法
本文主要介紹了Docker容器導(dǎo)致磁盤空間不足無法訪問的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05docker 部署 Elasticsearch kibana及ik分詞器詳解
這篇文章主要介紹了docker 部署 Elasticsearch kibana及ik分詞器詳解,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-05-05Docker搭建服務(wù)器監(jiān)控面板的實現(xiàn)示例
Docker服務(wù)器監(jiān)控面板是一種用于監(jiān)控容器運行情況的工具,本文主要介紹了Docker搭建服務(wù)器監(jiān)控面板的實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下2024-01-01