网站首页 > 精选教程 正文
目录标题
- 1. 背景和问题
- 背景
- 问题
- 问题查找
- 2.解决思路和方案
1. 背景和问题
背景
项目使用了Nacos微服务架构,由于项目运行需要启动注册中心、网关、认证中心、分布式事务中心等多个微服务,非常占用物理机内存和CPU,所以部署了一个开发服务器,把这些服务运行在服务器上,我只需要运行自己正在开发的的服务模块就可以,这样开发用的物理机一下就释放了很多内存,开发起来更顺畅。
问题
但是问题来了,docker容器自动分配的ip为172.17.0.0/24网段的ip,开发用的物理机和这个容器不在一个网段,根本没法访问到,这时候网上查到docker有一种网络模式是–net=host,就是让容器直接使用宿主服务器的ip,这样开发用的物理机就能够访问这个容器的接口了。但是这时候所有服务启动后,出现了一个问题,一直打印一个错误信息:
Caused by: java.net.UnknownHostException: VM-**-centos: Name or service not known
问题截图如下
Caused by: java.net.UnknownHostException: VM-**-**-centos: Name or service not known
at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)
at java.net.InetAddress$2.lookupAllHostAddr(InetAddress.java:928)
at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1323)
at java.net.InetAddress.getLocalHost(InetAddress.java:1500)
问题查找
首先我们找到这个报错的代码,分布式事务为了把自己注册到
事务中心,获取了自己服务器的IP,首先获取主机名称hostname,然后通过hostname转换成IP,就是这转换成IP时报错,unknown hostname
我们再看下报错信息,提示VM-**-centos这个域名找不到,但是我们发现,其中这个VM-**-centos就是宿主机的hostname(计算机名),试了下宿主机中可以ping通VM-**-centos,但是容器中ping不通,虽然docker容器继承了宿主机的hostname,但是却不识别。
2.解决思路和方案
这里代码中是先找到服务器的hostname,然后再获取IP,从这里入手,我们能不能给容器设置一个代码能识别的hostname ,这样代码就能够识别并获取到这个IP了,网上查询资料后找到下面的运行参数
docker run --net=host --hostname=自定义主机名 image名
这里使用了–hostname=localhost 和–hostname=192.168.54.13 都是可以的,最终问题解决,启动后没再报错
猜你喜欢
- 2024-12-07 服务器被黑,如何查找入侵、攻击痕迹呢?
- 2024-12-07 Java Web项目部署(一)CentOS7设置静态IP
- 2024-12-07 telnet命令的用法
- 2024-12-07 [零成本 懒人版] 我的世界JAVA国际版服务搭建,无需公网IP、服务器
- 2024-12-07 实现软件访问特定IP地址的方法!配置与编程两种途径
- 2024-12-07 我能想到的最浪漫的Java网络教程之Socket,三步到位
- 2024-12-07 Java干货:InetAddress基本操作演示
- 2024-12-07 获取IP地址的途径有哪些?要如何保护IP地址不被窃取?
- 2024-12-07 JAVA获取运行服务器IP地址的正确写法
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)