【docker】docker启动容器后,发现UnknownHostException相关报错

docker启动容器后,发现UnknownHostException相关报错

起因

在调试selenium的时候,想有没有独立的环境,可以在任何电脑上使用,然后刚好在docker上发现有一款叫selenium/standalone-chrome的容器,非常方便,run起来后直接就可以使用,还有VNC可以远程登录查看浏览器执行情况,在linux无界面下真的起到非常大的作用,所以打算pull下来试试

过程

开始只是在本地PC机上调试,使用非常流畅,消耗的资源也很小,所以打算放到服务器上使用,于是在linux上使用和PC上一样的运行脚本,但发现启动时docker日志直接报错了,这让我非常疑惑,因为对docker本身就是学习阶段,并不是很熟悉,所以研究半天,尝试加--dns的方式进行修复,无果,在github上求助,发现并没有人遇到相关问题,回复也是说检查docker环境,我检查个¥%¥啊

15:46:58.901 INFO [OpenTelemetryTracer.createTracer] - Using OpenTelemetry for tracing
15:46:59.264 WARN [HostIdentifier.resolveHostAddress] - Failed to resolve host address
java.net.UnknownHostException: c1f21803ae98: c1f21803ae98: Temporary failure in name resolution
        at java.base/java.net.InetAddress.getLocalHost(InetAddress.java:1670)
        at org.openqa.selenium.net.HostIdentifier.resolveHostAddress(HostIdentifier.java:104)
        at org.openqa.selenium.net.HostIdentifier.getHostAddress(HostIdentifier.java:123)
        at org.openqa.selenium.net.DefaultNetworkInterfaceProvider.<init>(DefaultNetworkInterfaceProvider.java:54)
        at org.openqa.selenium.net.NetworkUtils.<init>(NetworkUtils.java:48)
        at org.openqa.selenium.grid.server.BaseServerOptions.lambda$getExternalUri$0(BaseServerOptions.java:93)
        at java.base/java.util.Optional.orElseGet(Optional.java:369)
        at org.openqa.selenium.grid.server.BaseServerOptions.getExternalUri(BaseServerOptions.java:90)
        at org.openqa.selenium.grid.commands.Standalone.createHandlers(Standalone.java:129)
        at org.openqa.selenium.grid.TemplateGridServerCommand.asServer(TemplateGridServerCommand.java:47)
        at org.openqa.selenium.grid.commands.Standalone.execute(Standalone.java:261)
        at org.openqa.selenium.grid.TemplateGridCommand.lambda$configure$4(TemplateGridCommand.java:122)
        at org.openqa.selenium.grid.Main.launch(Main.java:83)
        at org.openqa.selenium.grid.Main.go(Main.java:56)
        at org.openqa.selenium.grid.Main.main(Main.java:41)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at org.openqa.selenium.grid.Bootstrap.runMain(Bootstrap.java:77)
        at org.openqa.selenium.grid.Bootstrap.main(Bootstrap.java:70)
Caused by: java.net.UnknownHostException: c1f21803ae98: Temporary failure in name resolution
        at java.base/java.net.Inet4AddressImpl.lookupAllHostAddr(Native Method)
        at java.base/java.net.InetAddress$PlatformNameService.lookupAllHostAddr(InetAddress.java:930)
        at java.base/java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1543)
        at java.base/java.net.InetAddress$NameServiceAddresses.get(InetAddress.java:848)
        at java.base/java.net.InetAddress.getAllByName0(InetAddress.java:1533)
        at java.base/java.net.InetAddress.getLocalHost(InetAddress.java:1665)
        ... 20 more

结果

最后的结果真的让人无语,发现是竟然只是/etc/hosts文件的权限问题,亏我还cat了半天,发现内容没有问题啊,一直在纠结哪里出问题了,起初也是觉得应该是权限不足的原因,因为在默认seleuesr用户下是无法cat /etc/hosts的,会提示权限不足,然后sudo su后就能正常查看了,到这里还没反应过来,一直纠结是为啥,最后在不经意的ls -la查看了下hosts文件的权限才发现这个问题,真的是吐了八百里血,但是为啥默认权限只有600就不知道为啥了。

-rw-------  1 linuxuesr  linuxuesr     77 Jan  6  2023 hosts

# 修改权限即可
chmod 644 /etc/hosts

-rw-r--r--  1 linuxuesr  linuxuesr     77 Jul 12 09:02 hosts
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值