2020年9月15日本次拉取nacos镜像为1.3.2 镜像自己拉取
在一台虚拟机上模拟,资源有限。mysql采用5.7 ,数据库初始化脚本:https://github.com/alibaba/nacos/blob/develop/distribution/conf/nacos-mysql.sql
docker run -d -e MODE=cluster -e NACOS_APPLICATION_PORT=8846 -e NACOS_SERVERS=192.168.100.132:8846,192.168.100.132:8847,192.168.100.132:8848 -e SPRING_DATASOURCE_PLATFORM=mysql -e MYSQL_SERVICE_HOST=192.168.100.132 -e MYSQL_SERVICE_PORT=3306 -e MYSQL_SERVICE_USER=root -e MYSQL_SERVICE_PASSWORD=123456 -e MYSQL_SERVICE_DB_NAME=nacos_config -e NACOS_SERVER_IP=192.168.100.132 -p 8846:8846 --name nacos8846 nacos/nacos-server:1.3.2 docker run -d -e MODE=cluster -e NACOS_APPLICATION_PORT=8847 -e NACOS_SERVERS=192.168.100.132:8846,192.168.100.132:8847,192.168.100.132:8848 -e SPRING_DATASOURCE_PLATFORM=mysql -e MYSQL_SERVICE_HOST=192.168.100.132 -e MYSQL_SERVICE_PORT=3306 -e MYSQL_SERVICE_USER=root -e MYSQL_SERVICE_PASSWORD=123456 -e MYSQL_SERVICE_DB_NAME=nacos_config -e NACOS_SERVER_IP=192.168.100.132 -p 8847:8847 --name nacos8847 nacos/nacos-server:1.3.2 docker run -d -e MODE=cluster -e NACOS_APPLICATION_PORT=8848 -e NACOS_SERVERS=192.168.100.132:8846,192.168.100.132:8847,192.168.100.132:8848 -e SPRING_DATASOURCE_PLATFORM=mysql -e MYSQL_SERVICE_HOST=192.168.100.132 -e MYSQL_SERVICE_PORT=3306 -e MYSQL_SERVICE_USER=root -e MYSQL_SERVICE_PASSWORD=123456 -e MYSQL_SERVICE_DB_NAME=nacos_config -e NACOS_SERVER_IP=192.168.100.132 -p 8848:8848 --name nacos8848 nacos/nacos-server:1.3.2
配置说明:
docker run -d # -d表示是后台运行 -e MODE=cluster # 以集群模式运行 -e NACOS_APPLICATION_PORT=8846 # 这台Nacos服务的port是8846 -e NACOS_SERVERS=192.168.100.132:8846,192.168.100.132:8847,192.168.100.132:8848 # Nacos集群的所有机器的信息 -e SPRING_DATASOURCE_PLATFORM=mysql # 使用外置MySQL存储配置信息 -e MYSQL_SERVICE_HOST=192.168.100.132 # 外置MySQL的IP -e MYSQL_SERVICE_PORT=3306 # 外置MySQL的port -e MYSQL_SERVICE_USER=root # 外置MySQL的用户名 -e MYSQL_SERVICE_PASSWORD=123456 # 外置MySQL的密码 -e MYSQL_SERVICE_DB_NAME=nacos_config # 外置MySQL的数据库,也就是Nacos的配置文件要存储得到哪个数据库,这个在单机版Nacos使用外置数据库时候介绍过 -e NACOS_SERVER_IP=192.168.100.132 # 这台Nacos服务的IP -p 8846:8846 # 容器外部端口映射 --name nacos8846 # 给容器起个名字吧 nacos/nacos-server:1.3.2 # 运行哪个镜像
常见坑点:官网使用的是NACOS_SERVER_PORT,对于nacos/nacos-server:1.3.2镜像,自定义Nacos端口号的时候,不要使用NACOS_SERVER_PORT,要使用NACOS_APPLICATION_PORT!因为conf/application.properties里写了。
查看启动的容器:
分别访问:默认账号:nacos 默认密码:nacos
http://192.168.100.132:8846/nacos
http://192.168.100.132:8847/nacos
http://192.168.100.132:8848/nacos
由Nginx进行转发(nginx下部署了3台Nacos集群)配置文件自行修改
upstream cluster { server 192.168.100.132:8846; server 192.168.100.132:8847; server 192.168.100.132:8848; } location / { proxy_pass http://cluster; }
访问http://192.168.100.132/nacos
修改项目中的配置文件
spring: application: name: my-provider01 cloud: nacos: discovery: server-addr: 192.168.100.132:80 # 指向Nginx,由Nginx进行转发(nginx下部署了3台Nacos集群)