Existem várias discussões de longa data sobre como fazer isso de maneira consistente, bem compreendida e portátil. Nenhuma resolução completa, mas eu irei vinculá-lo às discussões abaixo.
De qualquer forma, muitos desejam tentar usar a opção --add-host para executar o docker para adicionar o endereço IP do host ao arquivo / etc / host do contêiner. A partir daí, é trivial conectar-se ao host em qualquer porta necessária:
Adicionando entradas a um arquivo de hosts de contêiner
Você pode adicionar outros hosts ao arquivo / etc / hosts de um contêiner usando um ou mais sinalizadores --add-host. Este exemplo adiciona um endereço estático para um host chamado docker:
$ docker run --add-host=docker:10.180.0.1 --rm -it debian
$$ ping docker
PING docker (10.180.0.1): 48 data bytes
56 bytes from 10.180.0.1: icmp_seq=0 ttl=254 time=7.600 ms
56 bytes from 10.180.0.1: icmp_seq=1 ttl=254 time=30.705 ms
^C--- docker ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max/stddev = 7.600/19.152/30.705/11.553 ms
Nota: Às vezes, você precisa se conectar ao host do Docker, o que significa obter o endereço IP do host. Você pode usar os seguintes comandos do shell para simplificar esse processo:
$ alias hostip="ip route show 0.0.0.0/0 | grep -Eo 'via \S+' | awk '{ print $2 }'"
$ docker run --add-host=docker:$(hostip) --rm -it debian
Documentação:
https://docs.docker.com/engine/reference/commandline/run/
Discussões sobre como acessar o host do contêiner:
https://github.com/docker/docker/issues/1143
https://github.com/docker/docker/issues/10023