簡體   English   中英

如何從docker容器內部發出請求似乎來自我的本地計算機?

[英]How can I make a request coming from inside of a docker container appear to be coming from my local machine?

在docker容器中運行的瀏覽器需要對在我們的網絡中的測試API上運行的登錄服務進行POST。 該服務非常挑剔POST可以來自哪里因此它拒絕POST,因為它來自host.docker.internal而不是localhost.company.com

我不太可能將host.docker.internal添加到白名單中。

如果瀏覽器在我的本地計算機上運行,​​POST將正常工作,但當瀏覽器在本地計算機上的容器內運行時,POST將失敗。

我已經嘗試過docker run --add-host='localhost.mycompany.com:127.0.0.1'docker run --add-host='localhost:127.0.0.1' ,兩個都沒有用。 后者似乎很傻; 它在黑暗中是一種射擊......

一個可能的進一步復雜性:瀏覽器在Docker容器內的testcafe中運行,所以我的請求將有'Origin: http://172.17.0.2:1337' //172.17.0.2:1337 'Origin: http://172.17.0.2:1337'這樣的標題'Origin: http://172.17.0.2:1337' 'Referer: http://172.17.0.2:1337/WBrtZV38p/http://host.docker.internal:3000/app/' 'Origin: http://172.17.0.2:1337' //172.17.0.2:1337 / WBrtZV38p 'Referer: http://172.17.0.2:1337/WBrtZV38p/http://host.docker.internal:3000/app/'

如果沒有在我的本地機器上制作某種代理,有沒有辦法從docker容器發出POST似乎來自我的本地機器?

使用docker run --network host ...啟動主機OS網絡空間中的容器docker run --network host ... - 容器將直接在本地計算機的網絡中運行。 但是您將失去容器網絡隔離,因此您應該檢查此方法的安全性。

Doc: https//docs.docker.com/network/host/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM