前提环境
- Docker Desktop
组件搭建
Nacos
环境部署(单机)
先从git上克隆nacos-docker的docker-compose的yml文件
git clone https://github.com/nacos-group/nacos-docker.git
cd nacos-docker
在M1Mac上是不能直接执行的,因为Alibaba并没有提供arm64架构的nacos-docker环境,需要使用arm64环境build的docker才能使用,我们这里需要替换掉镜像。
vim example/standalone-derby.yaml
version: "2"
services:
nacos:
image: zhusaidong/nacos-server-m1:2.0.3 # 替换为此处镜像
container_name: nacos-standalone
environment:
- PREFER_HOST_MODE=hostname
- MODE=standalone
volumes:
- ./standalone-logs/:/home/nacos/logs
# 这里要提前新建一个custom.properties文件,否则系统会建立一个文件夹,在映射会出问题!
- ./init.d/custom.properties:/home/nacos/init.d/custom.properties
ports:
docker-compose -f example/standalone-derby.yaml up
见到INFO Completed initialization in 16 ms
即为配置成功
如提示docker-compose: command not found
,请参见安装docker-compose
集群配置(推荐使用这个配置)
vim example/cluster-hostname.yaml
version: "3"
services:
nacos1:
hostname: nacos1
container_name: nacos1
image: zhusaidong/nacos-server-m1:2.0.3 #更改这里为m1镜像
volumes:
- ./cluster-logs/nacos1:/home/nacos/logs
# 这里要提前新建一个custom.properties文件,否则系统会建立一个文件夹,在映射会出问题!
- ./init.d/custom.properties:/home/nacos/init.d/custom.properties
ports:
- "8848:8848"
- "9848:9848"
- "9555:9555"
env_file:
- ../env/nacos-hostname.env
restart: always
nacos2:
hostname: nacos2
container_name: nacos2
image: zhusaidong/nacos-server-m1:2.0.3 #更改这里为m1镜像
volumes:
- ./cluster-logs/nacos2:/home/nacos/logs
- ./init.d/custom.properties:/home/nacos/init.d/custom.properties
ports:
- "8849:8848"
- "9849:9848"
env_file:
- ../env/nacos-hostname.env
restart: always
vim env/nacos-hostname.env
# 详细配置项请在https://nacos.io/zh-cn/docs/quick-start-docker.html查看
# 启用hostname配置
PREFER_HOST_MODE=hostname
# 启动集群模式
MODE=cluster
# 配置集群的hostname
NACOS_SERVERS=nacos1:8848 nacos2:8848
# 配置数据源,如不需要可以不配
SPRING_DATASOURCE_PLATFORM=mysql
# 使用宿主机数据源
MYSQL_SERVICE_HOST=host.docker.internal
MYSQL_SERVICE_PORT=3306
MYSQL_SERVICE_USER=root
MYSQL_SERVICE_PASSWORD=admin
MYSQL_SERVICE_DB_NAME=nacos
(可选)配置数据源
在上面我们发现数据源找到的是我们数据库中的nacos,如果没有需要建表
建表语句请在Nacos2以mysql作为数据源的建表语句中查看。
配置完成之后使用docker-compose启动,
docker-compose -f example/cluster-hostname.yaml
此过程会加载地很慢很慢,请耐心等待,直到出现Successfully字样即为成功。
Sentinel-Dashboard
因为Sentinel并没有基于docker的镜像包,所以我自己通过jar文件打包了一个镜像,详细配置请看这里:https://hub.docker.com/r/birdyson/sentinel-dashboard
环境部署
以docker形式启动(不推荐,需要手动启动)
仅需一条命令即可:
docker run -p 8888:8888 -p 8719:8719 birdyson/sentinel-dashboard:1.8.2
以docker-compose形式启动(推荐,可以跟nacos一起启动)
version: "3"
services:
sentinel:
container_name: sentinel-dashboard
image: birdyson/sentinel-dashboard:1.8.2
ports:
- "8888:8888"
- "8719:8719"
restart: always
在IDEAapplication.yml中的配置
spring:
cloud:
sentinel:
transport:
port: 8719
dashboard: localhost:8888