java.net.UnknownHostException på Docker
I mit tilfælde fejlede java-applikationen med java.net.UnknownHostException
når du kører i docker. Årsagen var, at jeg brugte --network=none
docker-flag (henter ip/værtsnavn via dhcp og pipework). I dette tilfælde tilføjer docker ikke automatisk til /etc/hosts
post som
127.0.0.1 15e326aecf84
Og getCanonicalHostName()
Java-funktion kastede denne undtagelse.
Mulige løsninger:
- tilføj værtsnavn til
/etc/hosts
fil viadocker run
parameter--hostname=your-hostname.com
- skift til docker-administreret netværkskonfiguration
Det lykkedes mig at slippe af med DNS-problemerne ved at skifte til Oracle JRE 8 og bruge følgende hack i Dockerfilen:
RUN echo 'hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4' >> /etc/nsswitch.conf
Jeg oprettede en fungerende Java 8 docker-container på Docker Hub (koden er på github).