Docker-контейнер и переадресация портов Gcloud - PullRequest
0 голосов
/ 25 октября 2018

У меня есть контейнер Docker, работающий на моей локальной машине, и мне нужно вызвать REST, который открыт для частного VPN в Google Cloud Platform.

Допустим, этот REST предоставляется машиной external.service.com .Чтобы связаться с ним с моего локального компьютера, я выполнил следующие шаги:

  1. запустил команду на 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

  2. и добавить следующую строку в мой файл 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.

Можете ли вы помочь мне понять, что я делаю неправильно

...