「时光不负,创作不停,本文正在参加2022年中总结征文大赛」
Docker安装nacos(一台服务器多个实例)
1. docker拉取nacos
# 不添加版本拉取为最新版本 nacos/nacos-server:1.4.2 (1.4.2版本)
docker pull nacos/nacos-server
2. 创建自定义网络
-
- 自定义网络信息
# 查看当前docker中已有网络
docker network ls
# 创建自定义网段
docker network create --driver bridge --subnet=172.19.0.0/16 --gateway=172.19.0.1 mynetwork
# 显示该自定义网络信息
docker network inspect mynetwork
-
- 使用默认docker网络在springboot整合nacos集群时会产生注册找不到的问题
3. docker启动nacos容器(nacos信息持久化到mysql中)
docker run -itd \
-e PREFER_HOST_MODE=ip \
-e MODE=cluster \
-e NACOS_SERVERS="172.19.0.2:8848 172.19.0.3:8848" \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=host \
-e MYSQL_SERVICE_PORT=port \
-e MYSQL_SERVICE_DB_NAME=nacos \
-e MYSQL_SERVICE_USER=user \
-e MYSQL_SERVICE_PASSWORD=password \
-e JVM_XMS=256m \
-e JVM_XMX=256m \
-p 8847:8848 \
--name nacos8847 \
--net mynetwork --ip 172.19.0.2 \
--restart=always \
nacos/nacos-server
docker run -itd \
-e PREFER_HOST_MODE=ip \
-e MODE=cluster \
-e NACOS_SERVERS="172.19.0.2:8848 172.19.0.3:8848" \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=host \
-e MYSQL_SERVICE_PORT=port \
-e MYSQL_SERVICE_DB_NAME=nacos \
-e MYSQL_SERVICE_USER=user \
-e MYSQL_SERVICE_PASSWORD=password \
-e JVM_XMS=256m \
-e JVM_XMX=256m \
-p 8848:8848 \
--name nacos8848 \
--net mynetwork --ip 172.19.0.3 \
--restart=always \
nacos/nacos-server
4. nginx代理访问
upstream nacoscluster{
server ip:8847;
server ip:8848;
}
server {
location /nacos/ {
proxy_pass http://nacoscluster/nacos/;
}
}
5. nginx配置更改后重启
6. 访问http://ip:port/nacos/
7.springboot整合nacos
-
- 引入nacos依赖包
<!-- 引入nacos依赖包 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
-
- yml配置
spring:
application:
name: stock # 服务名称,nacos默认使用该名称注册
cloud:
nacos:
server-addr: ip:port # ip地址和端口,集群时此处为nginx代理地址和端口
discovery:
username: nacos # nacos用户名
password: nacos # nacos密码
namespace: public # 默认命名空间
-
- 服务启动成功后nacos页面服务列表