小编Dan*_*nry的帖子

来自Fargate集群上AWS ECS docker容器中运行的Java应用程序的UnknownHostException

我有一个大型Java应用程序,我正在尝试在AWS中的fargate集群上运行.图像在本地计算机的docker上成功运行.当我在fargate中运行它时它成功启动,但最终遇到以下错误,之后应用程序卡住了:

! java.net.UnknownHostException: 690bd678bcf4: 690bd678bcf4: Name or service not known
! at java.net.InetAddress.getLocalHost(InetAddress.java:1505) ~[na:1.8.0_151]
! at tracelink.misc.SingletonTokenDBO$.<init>(SingletonTokenDBO.scala:34) ~[habari.jar:8.4-QUARTZ-SNAPSHOT]
! at tracelink.misc.SingletonTokenDBO$.<clinit>(SingletonTokenDBO.scala) ~[habari.jar:8.4-QUARTZ-SNAPSHOT]
!... 10 common frames omitted
Caused by: ! java.net.UnknownHostException: 690bd678bcf4: Name or service not known
! at java.net.Inet4AddressImpl.lookupAllHostAddr(Native Method) ~[na:1.8.0_151]
! at java.net.InetAddress$2.lookupAllHostAddr(InetAddress.java:928) ~[na:1.8.0_151]
! at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1323) ~[na:1.8.0_151]
! at java.net.InetAddress.getLocalHost(InetAddress.java:1500) ~[na:1.8.0_151]
!... 12 common frames omitted
Run Code Online (Sandbox Code Playgroud)

Scala代码的违规行是:

  private val machineName = InetAddress.getLocalHost().getHostName()
Run Code Online (Sandbox Code Playgroud)

一些初步研究表明,错误与容器中/ etc/hosts文件的内容有关.所以我创建了一个小的测试程序,它表现出与我的实际应用程序相同的行为,并且还将/ etc/hosts的内容转储到stdout:

import java.net.*;
import java.io.*;

public class NetworkTest {
   public static void main(String[] …
Run Code Online (Sandbox Code Playgroud)

java docker aws-fargate

10
推荐指数
1
解决办法
2084
查看次数

标签 统计

aws-fargate ×1

docker ×1

java ×1