irpas技术客

docker部署nacos集群_小林敲代码_docker部署nacos集群

irpas 6661

mysql安装与基本操作

1) 拉取mysql

docker pull mysql:8.0.27

2) 定义挂载目录

mkdir -p /home/mysql/{conf,data}

3) 配置my.cnf(windows中是my.ini)

这里步骤省略

4) 开启mysql容器(bridge)

docker run -it \

-p 2333:3306 \

--name mysql \

-v /home/mysql/conf/my.cnf:/etc/my.cnf \

-v /home/mysql/data:/var/lib/mysql \

--privileged=true \

--restart=always \

-e MYSQL_ROOT_PASSWORD=root123 \

-d mysql:8.0.27 ?

5) 进入容器

docker exec -it mysql bash

6) 登录mysql

mysql -uroot -p

7) 查看user表

select host,user,authentication_string,plugin from user;?

8) 查看root权限

SHOW GRANTS FOR 'root'@'%';

?9) nacos数据库配置

这里用的Idea连接(navicat无法连接):

连接成功后 新建架构 运行nacos-mysql.sql脚本

nacos服务部署

1.拉取镜像

docker pull nacos/nacos-server

2.启动nacos(设置启动参数)

docker run -it \

-e PREFER_HOST_MODE=ip \

-e MODE=standalone \

-e SPRING_DATASOURCE_PLATFORM=mysql \

-e MYSQL_SERVICE_HOST=172.17.0.2 \

-e MYSQL_SERIVCE_PORT=3306 \

-e MYSQL_SERVICE_DB_NAME=nacos \

-e MYSQL_SERVICE_USER=root \

-e?MYSQL_SERVICE_PASSWORD=root123 \

-p 9901:8848 \

--name nacos \

--restart=always nacos/nacos-server

注:如果出现 No Datasource Set

? (1)检查ip是否对应

? (2)是否在同一网段下

? (3)检查数据库名称是否对应

? (4)检查用户名与密码

? (5)检查数据库中是否存在对应的表(是否执行脚本)

3.进行nacos数据持久化测试

浏览器访问 192.168.23.131:9901 登录nacos 新建配置text.yml

?

4.在控制台获得nacos配置

curl -X?GET "http://ip:8848/nacos/v1/cs/configs?dataId=xx.yml&group=DEFAULT_GROUP"

如图:

?

数据库中config_info表也会有一条数据

?

nacos集群搭建

基于自定义网络:可以自定义ip

删除之前的容器

docker rm -f $(docker ps -aq)

重新开启mysql容器(默认的bridge网桥无法指定固定的ip,则会导致mysql服务的ip不固定,最好配置为自定义网络)

docker run -it \

-p 2333:3306 \

--name mysql \

--net mynet \

--ip 172.18.1.30 \

-v /home/mysql/conf/my.cnf:/etc/my.cnf \

-v /home/mysql/data:/var/lib/mysql \

--privileged=true \

--restart=always \

-e MYSQL_ROOT_PASSWORD=root123 \

-d mysql:8.0.27

开启nacos容器

1)

docker run -it \

-e PREFER_HOST_MODE=ip \

-e MODE=cluster \

-e NACOS_SERVERS="172.18.1.42:8848 172.18.1.43:8848" \

-e SPRING_DATASOURCE_PLATFORM=mysql \

-e MYSQL_SERVICE_HOST=172.18.1.30 \

-e MYSQL_SERIVCE_PORT=3306 \

-e MYSQL_SERVICE_DB_NAME=nacos \

-e MYSQL_SERVICE_USER=root \

-e MYSQL_SERVICE_PASSWORD=root123 \

-p 9901:8848?--name nacos01 \

--net mynet --ip 172.18.1.41 \

--restart=always nacos/nacos-server

?2)

docker run -it \

-e PREFER_HOST_MODE=ip \

-e MODE=cluster \

-e NACOS_SERVERS="172.18.1.41:8848 172.18.1.43:8848" \

-e SPRING_DATASOURCE_PLATFORM=mysql \

-e MYSQL_SERVICE_HOST=172.18.1.30 \

-e MYSQL_SERIVCE_PORT=3306 \

-e MYSQL_SERVICE_DB_NAME=nacos \

-e MYSQL_SERVICE_USER=root \

-e MYSQL_SERVICE_PASSWORD=root123 \

-p 9902:8848?--name nacos02?\

--net mynet --ip 172.18.1.42?\

--restart=always nacos/nacos-server

?3)

docker run -it \

-e PREFER_HOST_MODE=ip \

-e MODE=cluster \

-e NACOS_SERVERS="172.18.1.41:8848 172.18.1.42:8848" \

-e SPRING_DATASOURCE_PLATFORM=mysql \

-e MYSQL_SERVICE_HOST=172.18.1.30 \

-e MYSQL_SERIVCE_PORT=3306 \

-e MYSQL_SERVICE_DB_NAME=nacos \

-e MYSQL_SERVICE_USER=root \

-e MYSQL_SERVICE_PASSWORD=root123 \

-p 9903:8848?--name nacos03?\

--net mynet --ip 172.18.1.43?\

--restart=always nacos/nacos-server

浏览器访问查看是否成功访问?

怎么看集群是否搭建成功?点击集群管理-->节点列表

?集群搭建成功~ 但是这三个不互通,接下来

|

|

v

反向代理(负载均衡)

开启nginx容器

docker run -itd \

--name nginx \

--net mynet \

-v /home/nginx/conf.d:/etc/nginx/conf.d \

-v /home/nginx/html:/etc/nginx/html \

-v /home/nginx/log:/etc/log/nginx \

-p 8080:80 nginx

在/home/nginx/conf.d/default.conf中配置:

upstream nacosList {? ? ? server 172.18.1.41:8848 weight=1; ? ? server 172.18.1.42:8848 weight=2; ? ? server 172.18.1.43:8848 weight=2; }

location /nacos { ? ? ? ? proxy_pass ?http://nacosList; }

?重读配置文件

nacos -s reload

nacos集群部署OK~?


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #docker部署nacos集群