У меня есть контейнер Docker, работающий на моей локальной машине, и мне нужно вызвать REST, который открыт для частного VPN в Google Cloud Platform.
Допустим, этот REST предоставляется машиной external.service.com .Чтобы связаться с ним с моего локального компьютера, я выполнил следующие шаги:
запустил команду на che Shell Cloud SDK Shell: gcloud compute ssh test-2 --ssh-flag="-L 2001:192.168.0.10:100"
.Где 192.168.0.10: 100 - это IP-адрес, соответствующий external.service.com внутри VPN.Это позволяет мне достичь этого IP-адреса с localhost: 2001
и добавить следующую строку в мой файл host в Windows 10: 127.0.0.1 external.service.com
Теперь на Почтальоне я могу связаться с "частной" службой REST по URL-адресу https://external.service.com:2001/api
В целях тестирования я должен получить ту же службу REST из контейнера Dockerработает на моей локальной машине.Я знаю, что для доступа к хост-машине из Docker-контейнера мне нужно использовать IP-адрес активного интерфейса моей машины, поскольку каждый Docker-контейнер будет ссылаться на 127.0.0.1 сам по себе.
Так что я добавил следующее свойство в свойdocker-compose.yml
:
extra_hosts:
- "external-service.com:192.168.xxx.x"
Где 192.168.xxx.x - мой IP-адрес.
Учитывая эту информацию, при вызове службы REST, предоставляемой external.service.com внутри моего контейнера Docker я получаю следующую ошибку:
org.apache.http.conn.HttpHostConnectException: Connect to external.service.com:2001 [external.service.com/192.168.137.1] failed: Connection refused (Connection refused)
В заключение, Docker не может сказать, чтобы преобразовать external.service.com в localhost: 2001 или (192.168.xxx.x: 2001) для доступа к службе REST, достижимой при переадресации порта Google Cloud.
Можете ли вы помочь мне понять, что я делаю неправильно