在IntelliJ IDEA开发环境中正常运行的eureka群集上部署docker时出现的漏洞。
另一方面,VMware unbuntu 20虚拟机镜像相互ping的问题
1、首先,要将镜像每个虚拟机的网络适配器配置为NAT方法,必须在同一NAT网络下选择。
这样可以确保每个虚拟机之间的物理网络是互操作的。 此时,您可以使用ping xxx.xxx.xxx.xxx进行互操作
2、然后进入各ubuntu,修改/ect/hosts和/ect/hostname,填写各虚拟机之间的主机名和IP映射关系。
这样,就保证了在各虚拟机之间ping主机名的方法,并且可以进行互操作。 典型的hosts内容如下
127.0.0.1 localhost 127.0.0.1 hostname
127.0.1.1服务器- 3
192.168.88.129服务器- 1
192.168.88.130服务器- 2
192.168.88.131服务器- 3
# thefollowinglinesaredesirableforipv 6可兼容主机
:1 ip6-localhost ip6-loopback
fe00:0 ip6-localnet
ff00:0 ip6-mcastprefix
ff02:1 ip6-allnodes
ff02:2 ip6-allrouters
配置完成后,eureka.jar可以直接在ubuntu环境中运行
二. docker的主机映射
将eureka.jar打包到docker镜像中时,您会发现每个虚拟机的eureka之间不可互操作,因为eureka中每个docker中的主机都是默认配置问题。
1、docker镜像生成后,docker镜像中的/ect/hosts默认为空的简化配置。 进入docker后,可以通过ping主机名称进行确认,或者直接查看/ect/hosts来发现未配置的问题。
解决方案是将端口映射引入到docker启动命令中。 典型的docker启动命令如下
docker run-- add-hostserver-1:192.168.88.129-- add-hostserver-23360192.168.88.130-add-hostserver 3609000micro-Eureka-server以参数--add-add-为单位添加需要添加的主机
而且,启动各docker后,可知euraka集群的各euraka实例相互连接。
--------------------- -
今天,又发现了一个秘密漏洞。 虚拟机锁定/恢复后,上面每个虚拟机之间的docker容器也不再彼此ping。 进入docker容器ping其他虚拟机的IP ping无法正常工作,但容器外的虚拟机可以正常工作!
很明显,docker中的虚拟网卡——虚拟机的docker网关虚拟网卡——虚拟机的虚拟网卡三者之间的router存在问题。 懒惰地进一步分析问题,将docker的默认桥接模式更改为主机模式,直接解决。
docker run-d http://www.Sina.com/micro-eureka-server- server.port=9000-- eureka.server.group=server
请参阅文章:
在docker上部署springCloud微服务无法识别注册中心的eureka的问题-中国承载者的个人空间- OSCHINA -中文开源技术交流社区
Docker修改hosts方法- AmyZYX -博客公园