如何从docker容器内部发出请求似乎来自我的本地计算机?

问题描述 投票:3回答:1

在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' 'Referer: http://172.17.0.2:1337/WBrtZV38p/http://host.docker.internal:3000/app/'这样的标题

如果没有在我的本地机器上制作某种代理,有没有办法从docker容器发出POST似乎来自我的本地机器?

docker automated-tests e2e-testing web-testing testcafe
1个回答
4
投票

使用docker run --network host ...在主机操作系统网络空间中启动容器 - 容器将直接在本地计算机的网络中运行。但是您将失去容器网络隔离,因此您应该检查此方法的安全性。

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

© www.soinside.com 2019 - 2024. All rights reserved.