详细介绍了docker容器根据ping立即获取公有IP的实际 *** 作,具有非常好的实用价值,希望对大家有所帮助。跟我回去看看。
根据该容器,可以使用本地ip多业务项目认证中心来获得设备的公共IP。
将命令更改为ping可以获得不同的网络服务器信息。
publicstaticStringgetIfconfigIP() { BufferedReaderin=null; Stringoutline=""; //timeOutwindow为mslinux为s Runtimer=Runtime.getRuntime();//即将实行的ping命令,此命令是windows格式的命令 StringpingCommand="curlifconfig.me";//windows系统软件 Stringos=System.getProperty("os.name").toLowerCase(); if(os.indexOf("linux")>=0) { pingCommand="curlifconfig.me"; } if(os.indexOf("mac")>=0) { pingCommand="curlifconfig.me"; } try {//实行命令并获得輸出 System.out.println(pingCommand); Processp=r.exec(pingCommand); if(p==null) { return"cmdfailed"; } in=newBufferedReader(newInputStreamReader(p.getInputStream()));//一行行查验輸出,测算相近出現=23ms //TTL=62字眼的频次 intconnectedCount=0; Stringline=null; while((line=in.readLine())!=null) { outline=line; } returnoutline; } catch(Exceptionex) { ex.printStackTrace();//发现异常则回到假 returnoutline; } finally { try { in.close(); } catch(IOExceptione) { e.printStackTrace(); } } }docker里的ip是假的。如何通过docker中的程序流程获取主机服务器的详细ip地址?
以下是对我的一些提醒。
p=require('child_process') .spawnSync('curl',['ifconfig.io']) .stdout .toString() .trim()填写专业知识:docker网络问题,在docker容器中无法ping通主机的外网地址ip,但是可以ping通其他设备的外网地址IP
拼图显示
设备A和设备B都有自己的内部IP和外部IP,例如A-IP-internal和A-IP-external。
-bIP-内部,bIP-外部,一个设备有一个网站域名www.xxx.com。
在设备A上安装jenkins的docker容器,启动后,进入容器。
#dockerexec-itjenkins/bin/sh
然后ping容器中主机A的内网IP,就可以ping通了。
#pingA-IP-inside(172.16…)//回到能够ping通的状态
#pingA-IP-外部(202.106…)//ping拥塞
#pingwww.xxx.com//can被正确地分析为机器A的外部网络IP,但是ping被阻止。
平baidu.com//can平。
此外:
1.连接了主机A外部docker容器的pingA-IP-External(202.106…)。
2.在设备B上安装jenkins容器,并且打开容器中的pingA-IP-Outside(202.106…)。
2.在B设备上安装jenkins容器。容器内的pingB-IP-outside(202.106…)被阻止。
搜索各种网络问题,删除容器,镜像系统,重装docker都失败了。
总之:
在docker容器中Ping主机自己的公有IP是不一样的。
我需要在设备A的容器中ping设备A在www.xxx.com的内部网地址
因为容器可以ping通机器a的内部网地址。
docker-撰写文档的新更改
额外主机:
——“www.XXX.com:172.16.XXX.a”
重建docker容器后,进入docker容器。
#pingA-IP-External(202.106…)//ping正常,OK符合要求。
以上docker容器根据ping即时 *** 作获取公有IP的实际 *** 作,这就是我分享给大家的全部。期待给你一个参考,也期待你的申请。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)