本次安装Nacos版本如下:
- Nacos1.3
依赖数据库为主从模式的MySQL:
-MySQL5.7.28
部署参考:Docker初见(二)Docker 安装MySQL5.7主从
1.创建数据库 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 上执行 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)复制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容器执行脚本
1)进入容器
docker exec -it 58320ea88fc4 /bin/bash
2)登录mysql
mysql -u root -p1234=Qwer!
3)登录mysql之后,执行脚本文件
use nacos;
source /home/nacos-db.sql
4)等待执行完成
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
配置参数说明:
配置项 | 描述 | 可选参数 | 默认值 |
---|---|---|---|
MODE | 模式 cluster/standalone | cluster/standalone | cluster |
PREFER_HOST_MODE | 是否支持 hostname | hostname/ip | ip |
NACOS_SERVER_PORT | 服务端口号 | 8848 | |
SPRING_DATASOURCE_PLATFORM | 单机模式支持 mysql | mysql / empty | empty |
MYSQL_SERVICE_HOST | mysql host | ||
MYSQL_SERVICE_PORT | mysql port | 3306 | |
MYSQL_SERVICE_DB_NAME | mysql 数据库名 | ||
MYSQL_SERVICE_USER | mysql 用户名 | ||
MYSQL_SERVICE_PASSWORD | mysql 密码 | ||
MYSQL_MASTER_SERVICE_HOST | mysql 主节点 host | ||
MYSQL_MASTER_SERVICE_PORT | mysql 主节点 port | 3306 | |
MYSQL_MASTER_SERVICE_DB_NAME | mysql 主节点数据库名 | ||
MYSQL_MASTER_SERVICE_USER | mysql 主节点用户名 | ||
MYSQL_MASTER_SERVICE_PASSWORD | mysql 主节点密码 | ||
MYSQL_SLAVE_SERVICE_HOST | mysql 从节点 host | ||
MYSQL_SLAVE_SERVICE_PORT | mysql 从节点 port | 3306 |
4.运行 Nacos (集群模式)
本次集群部署以3台机器为例,具体数量可自行更改
1)创建文件夹
#日志文件映射文件夹
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)创建custom.properties,放入/home/nacos/init.d/中
cd /home/nacos/init.d/
vi custom.properties
内容如下:
#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)创建nacos-hostname.env,放在/home/nacos/env/中
cd /home/nacos/env/
vi nacos-hostname.env
内容如下:
#nacos dev env
PREFER_HOST_MODE=hostname
# docker实例别名,可以换成ip
NACOS_SERVERS=nacos1:8848 nacos2:8848 nacos3:8848
MYSQL_SERVICE_HOST=mysql-master
# 指定保存数据的数据库名称
MYSQL_SERVICE_DB_NAME=nacos
# 访问mysql端口
MYSQL_SERVICE_PORT=3306
# 访问mysql的用户名
MYSQL_SERVICE_USER=root
# 访问mysql的密码
MYSQL_SERVICE_PASSWORD=1234=Qwer!
4)创建docker-compose.yml,放在/home/nacos/中
cd /home/nacos/
vi docker-compose.yml
内容如下:
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