Eu estou fazendo exatamente esse tipo de coisa durante o meu trabalho diário. Há duas coisas a serem levadas em consideração aqui:
- A porta do serviço dockerized tem que ser encaminhada para o seu vm vagante
- A porta (agora apontando para o contêiner docker) na caixa vagrant tem que ser encaminhada para sua caixa física
Como não conheço seu serviço dockerized, tomo a distribuição padrão do Redis dockerizado como exemplo aqui.
Como estou trabalhando com o figo ( link ) para iniciar meus contêineres docker, terei que mostrar a resposta para a primeira parte em um exemplo fig.yml
:
redis:
image: redis:latest
ports:
- "6379:6379"
Isso executa o Armazenamento de Valor-Chave do Redis em um contêiner de encaixe e encaminha sua porta 6379 para a porta 6379 na caixa do vagrant. Agora você pode se conectar ao Redis via localhost: 6379 do INSIDE vagrant vm, então estamos no meio do caminho.
O segundo passo é encaminhar isso para sua máquina local, adicionando isso ao seu Vagrantfile
:
config.vm.network :forwarded_port, guest: 6379, host: 6379
Voila: Agora você pode acessar o Redis via localhost: 6379 da sua máquina física.
Para o seu caso, isso significa que você terá que alterar http://172.17.0.2:4567
para http://127.0.0.1:4567
no código da sua webapp, para que ele realmente use o encaminhamento de porta recém-configurado.