本次安裝Nacos版本如下:
- Nacos1.3
依賴數(shù)據(jù)庫為主從模式的MySQL:
-MySQL5.7.28
部署參考:Docker初見(二)Docker 安裝MySQL5.7主從
1.創(chuàng)建數(shù)據(jù)庫 nacos
docker run -it --rm --network common-network mysql:5.7.28 mysql -hmysql-master -uroot -p1234=Qwer! \
-e "create database nacos character set utf8 collate utf8_general_ci;"
2.在 mysql-master 上執(zhí)行 SQL
(1)下載nacos-db.sql
cd /home/
mkdir nacos
cd /home/nacos
git clone https://github.com/alibaba/nacos.git
(2)查看mysql-master的容器id冈止,將文件拷入docker
1)查詢mysql容器ID
[root@localhost nacos]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c933b55748d4 mysql:5.7.28 "docker-entrypoint.s…" 2 hours ago Up 2 hours 33060/tcp, 0.0.0.0:3307->3306/tcp mysql-slave
58320ea88fc4 mysql:5.7.28 "docker-entrypoint.s…" 2 hours ago Up 2 hours 0.0.0.0:3306->3306/tcp, 33060/tcp mysql-master
2)復(fù)制sql文件到mysql容器中
docker cp /home/nacos/nacos/config/src/main/resources/META-INF/nacos-db.sql 58320ea88fc4:/home/nacos-db.sql
/home/nacos/nacos/config/src/main/resources/META-INF/nacos-db.sql就是所需文件渔肩,58320ea88fc4就是我的mysql容器id帚称。
(3)進入mysql容器執(zhí)行腳本
1)進入容器
docker exec -it 58320ea88fc4 /bin/bash
2)登錄mysql
mysql -u root -p1234=Qwer!
3)登錄mysql之后赎败,執(zhí)行腳本文件
use nacos;
source /home/nacos-db.sql
4)等待執(zhí)行完成
3.運行 Nacos (單機模式)
docker run -dit \
--name nacos-server \
--network common-network \
-e PREFER_HOST_MODE=hostname \
-e MODE=standalone \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=mysql-master \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=1234=Qwer! \
-e MYSQL_SERVICE_DB_NAME=nacos \
-p 8848:8848 \
nacos/nacos-server:1.3.0
配置參數(shù)說明:
配置項 | 描述 | 可選參數(shù) | 默認值 |
---|---|---|---|
MODE | 模式 cluster/standalone | cluster/standalone | cluster |
PREFER_HOST_MODE | 是否支持 hostname | hostname/ip | ip |
NACOS_SERVER_PORT | 服務(wù)端口號 | 8848 | |
SPRING_DATASOURCE_PLATFORM | 單機模式支持 mysql | mysql / empty | empty |
MYSQL_SERVICE_HOST | mysql host | ||
MYSQL_SERVICE_PORT | mysql port | 3306 | |
MYSQL_SERVICE_DB_NAME | mysql 數(shù)據(jù)庫名 | ||
MYSQL_SERVICE_USER | mysql 用戶名 | ||
MYSQL_SERVICE_PASSWORD | mysql 密碼 | ||
MYSQL_MASTER_SERVICE_HOST | mysql 主節(jié)點 host | ||
MYSQL_MASTER_SERVICE_PORT | mysql 主節(jié)點 port | 3306 | |
MYSQL_MASTER_SERVICE_DB_NAME | mysql 主節(jié)點數(shù)據(jù)庫名 | ||
MYSQL_MASTER_SERVICE_USER | mysql 主節(jié)點用戶名 | ||
MYSQL_MASTER_SERVICE_PASSWORD | mysql 主節(jié)點密碼 | ||
MYSQL_SLAVE_SERVICE_HOST | mysql 從節(jié)點 host | ||
MYSQL_SLAVE_SERVICE_PORT | mysql 從節(jié)點 port | 3306 |
4.運行 Nacos (集群模式)
本次集群部署以3臺機器為例呐舔,具體數(shù)量可自行更改
1)創(chuàng)建文件夾
#日志文件映射文件夾
mkdir /home/nacos/cluster-logs
mkdir /home/nacos/cluster-logs/nacos1
mkdir /home/nacos/cluster-logs/nacos2
mkdir /home/nacos/cluster-logs/nacos3
#配置文件映射文件夾
mkdir /home/nacos/init.d/
#集群配置文件文件夾
mkdir /home/nacos/env/
2)創(chuàng)建custom.properties淑趾,放入/home/nacos/init.d/中
cd /home/nacos/init.d/
vi custom.properties
內(nèi)容如下:
#spring.security.enabled=false
#management.security=false
#security.basic.enabled=false
#nacos.security.ignore.urls=/**
#management.metrics.export.elastic.host=http://localhost:9200
# metrics for prometheus
management.endpoints.web.exposure.include=*
# metrics for elastic search
#management.metrics.export.elastic.enabled=false
#management.metrics.export.elastic.host=http://localhost:9200
# metrics for influx
#management.metrics.export.influx.enabled=false
#management.metrics.export.influx.db=springboot
#management.metrics.export.influx.uri=http://localhost:8086
#management.metrics.export.influx.auto-create-db=true
#management.metrics.export.influx.consistency=one
#management.metrics.export.influx.compressed=true
3)創(chuàng)建nacos-hostname.env,放在/home/nacos/env/中
cd /home/nacos/env/
vi nacos-hostname.env
內(nèi)容如下:
#nacos dev env
PREFER_HOST_MODE=hostname
# docker實例別名攒霹,可以換成ip
NACOS_SERVERS=nacos1:8848 nacos2:8848 nacos3:8848
MYSQL_SERVICE_HOST=mysql-master
# 指定保存數(shù)據(jù)的數(shù)據(jù)庫名稱
MYSQL_SERVICE_DB_NAME=nacos
# 訪問mysql端口
MYSQL_SERVICE_PORT=3306
# 訪問mysql的用戶名
MYSQL_SERVICE_USER=root
# 訪問mysql的密碼
MYSQL_SERVICE_PASSWORD=1234=Qwer!
4)創(chuàng)建docker-compose.yml怯疤,放在/home/nacos/中
cd /home/nacos/
vi docker-compose.yml
內(nèi)容如下:
version: "3.4"
services:
nacos1:
hostname: nacos1
container_name: nacos1
image: nacos/nacos-server:1.3.0
volumes:
# 把日志文件映射出來
- /home/nacos/cluster-logs/nacos1:/home/nacos/logs
# 把配置文件映射出來
- /home/nacos/init.d/custom.properties:/home/nacos/init.d/custom.properties
ports:
- "8848:8848"
- "9555:9555"
env_file:
# 集群配置文件
- /home/nacos/env/nacos-hostname.env
restart: always
nacos2:
hostname: nacos2
image: nacos/nacos-server:1.3.0
container_name: nacos2
volumes:
- /home/nacos/cluster-logs/nacos2:/home/nacos/logs
- /home/nacos/init.d/custom.properties:/home/nacos/init.d/custom.properties
ports:
- "8849:8848"
env_file:
- /home/nacos/env/nacos-hostname.env
restart: always
nacos3:
hostname: nacos3
image: nacos/nacos-server:1.3.0
container_name: nacos3
volumes:
- /home/nacos/cluster-logs/nacos3:/home/nacos/logs
- /home/nacos/init.d/custom.properties:/home/nacos/init.d/custom.properties
ports:
- "8850:8848"
env_file:
- /home/nacos/env/nacos-hostname.env
restart: always
5)啟動nacos server集群
docker-compose up -d
5.訪問Nacos
基本信息
- 訪問地址:http://localhost:8848/nacos
-
賬號密碼:nacos / nacos
登錄頁