Hvorfor kan jeg IKKE oprette forbindelse til localhost:5432?
Cat din containers /etc/hosts
$ sudo docker exec -it [container] cat /etc/hosts
For docker-netværk er bridge
som standard er localhost
indersiden peger på selve containeren(Docker standardbro-netværk
).Så har du ikke 5432
lytter i din container:
$ sudo docker exec [container] nc -v -z localhost 5432
Løsning 1. Hvis du vil fastkode "localhost:5432" i din config xml, er den nemmeste måde at oprette din container med muligheden "--net=host":
$ sudo docker run --net=host -it ...
Løsning 2. Skift
localhost
af din docker-værts-ip inde i containeren- Få din docker-værts-ip :
$ sudo docker inspect -f '{{ .NetworkSettings.Gateway }}' 192.168.5.1
- Indtast din container:
$ sudo docker exec -it [container] /bin/bash
- Rediger filen
/etc/hosts
at pege den lokale vært til docker-værts-ip :$ sudo vim /etc/hosts 192.168.5.1 localhost
Løsning 3. Rediger din db-konfigurationsfil til at bruge et alias i stedet for localhost
:
connectionURL="jdbc:postgresql://DB_ALIAS/admin?stringtype=unspecified"
Tilføj derefter DB_ALIAS
til containerens værter :$ sudo docker run --add-host DB_ALIAS:192.168.5.1 -it [image] ...