芭比q了,没用了,这通过docker部署集群好复杂了,弄不好了。。等再调研下把。。。
文章背景
慕课网Spring Cloud/Alibaba实战中第四章部署nacos集群。
由于老师是直接在linux上部署的。而我是想在window10下通过docker完成相同的功能。
参考文献
https://www.cnblogs.com/jinit/p/13619493.html
自用环境介绍
1. docker的安装
我的docker是使用的WSL。
版本
nacos 2.0.3
具体操作
1. 固定docker容器的IP。
因为最近刚开始接触,刚开始用的时候发现每次重启容器IP都会变化。后来去搜索了下相关文章,才知道每次容器重启都会重新分配IP。
网上有通过创建桥接网络,然后创建容器指定桥接网络ip的方式去实现多容器不同ip。我需求没那么复杂。就采用了另一种修改hosts文件的方式。但是那篇文章我找不到了,如果有看见的,可以评论区告诉我。
修改后的Host文件 192.168.124.2就是我当前机器的ip。
# Added by Docker Desktop
192.168.124.2 host.docker.internal
192.168.124.2 gateway.docker.internal
# To allow the same kube context to work on the host and the container:
127.0.0.1 kubernetes.docker.internal
# End of section
通过这种方式所有创建的容器上的服务都可以通过此ip访问。
2. nacos集群
- docker拉取nacos镜像
docker pull nacos/nacos-server
- docker启动nacos容器
# 为了方便观看,我把命令行换行了,其实就是一条命令
docker run -d
--name nacos-8848
-e NACOS_SERVER_PORT=8848
-e NACOS_SERVERS="192.168.124.2:8848 192.168.124.2:8858 192.168.124.2:8868"
-e NACOS_SERVER_IP=192.168.124.2
-p 8848:8848 -p 9848:9848 -p 9849:9849 nacos/nacos-server
参数解释:
- –name
后面接的就是nacos容器名称,这个很好理解 - -e NACOS_SERVER_PORT=8848
配置当前节点端口是8848 - -e NACOS_SERVERS=“”
nacos集群上的所有ip,例如我配置了三个。 - -e NACOS_SERVER_IP=192.168.124.2
当前节点ip - -p 8848:8848
就是本地到容器的端口映射,只需要改前面的端口就可以了,例如我是8848、8858、8868三个节点对应三个端口。 - -p 9848:9848 -p 9849:9849
nacos 2.0以后新增了gRPC的通信方式,新增了两个端口,所以也要进行映射
参考文章
-
三个节点的启动命令分别是
nacos-8848docker run -d --name nacos-8848 -e NACOS_SERVER_PORT=8848 -e NACOS_SERVERS="192.168.124.2:8848 192.168.124.2:8858 192.168.124.2:8868" -e NACOS_SERVER_IP=192.168.124.2 -p 8848:8848 -p 9848:9848 -p 9849:9849 nacos/nacos-server
nacos-8858
docker run -d --name nacos-8858 -e NACOS_SERVER_PORT=8858 -e NACOS_SERVERS="192.168.124.2:8848 192.168.124.2:8858 192.168.124.2:8868" -e NACOS_SERVER_IP=192.168.124.2 -p 8858:8848 -p 9858:9848 -p 9859:9849 nacos/nacos-server
nacos-8868
docker run -d --name nacos-8868 -e NACOS_SERVER_PORT=8868 -e NACOS_SERVERS="192.168.124.2:8848 192.168.124.2:8858 192.168.124.2:8868" -e NACOS_SERVER_IP=192.168.124.2 -p 8868:8848 -p 9868:9848 -p 9869:9849 nacos/nacos-server
-
配置mysql数据源
docker exec -it nacos-8848 bash cd conf # 修改配置文件,添加mysql数据源,在文件最下面添加 vim application.properties
mysql数据源配置文件
spring.datasource.platform=mysql db.num=1 db.url.0=jdbc:mysql://192.168.124.2:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true db.user=root db.password=root
-
重启docker容器
- 通过windows桌面应用进行重启就行
- 通过docker命令重启容器
-
总结:我也是刚接触docker,也不是太熟悉,大家有问题可以在评论区交流下。
3. 别问我为什么没用nginx
因为课程上的部署没用nginx,至于负载均衡采用的是别的方案。所以我为了脱离nginx部署是绞尽脑汁了0-0。难啊。