gpt4 book ai didi

Docker容器无法使用IP白名单连接到主机应用程序

转载 作者:行者123 更新时间:2023-12-01 16:47:15 28 4
gpt4 key购买 nike

我的主机上运行的应用程序具有以下功能:它监听端口 4001(可配置),并且仅接受来自可信 IP 地址白名单的连接(默认情况下仅 127.0.0.1,可以添加其他地址)但一张一张地,不使用面具)。

(这是在 java 中运行的交互式代理网关应用程序,但我认为这并不重要)

我有另一个应用程序在 docker 容器内运行,需要连接到主机应用程序。

(这是一个访问 IB API 的 python 应用程序,但我再次认为这并不重要)

最终,我将在多台机器上使用多个容器来尝试做同样的事情,但我什至无法让它与在同一台机器上运行的容器一起工作。

sudo docker run -t  myimage

Error: Couldn't connect to TWS. Confirm that "Enable ActiveX and Socket Clients" is enabled on the TWS "Configure->API" menu.

(主机上的 IB 网关没有响应)

理想情况下,我能够设置 docker 容器/网桥,以便所有 docker 容器看起来都好像位于特定 IP 地址上,将其添加到白名单中,然后瞧。

我尝试过的:

1) 使用 -p 和 EXPOSE

sudo docker run -t -p 4001:4001 myimage

绑定(bind) 0.0.0.0:4001 失败:端口已分配。

(网关无响应)

这两者都不起作用或导致“端口已在使用中”冲突。我认为这些设置是为相反的问题而设计的(主机看不到容器上的特定端口)。

2)设置--net=主机

sudo docker run -t --net=host myimage

读取套接字时捕获异常 - 连接被对等方重置

(网关无响应)

这应该可以工作,因为 docker 容器现在看起来应该是 127.0.0.1...但事实并非如此。

3)设置--net=host并将本地主机的真实IP地址192.168.0.12(如评论中建议的)添加到白名单

sudo docker run -t --net=host myimage

读取套接字时捕获异常 - 连接被对等方重置

(网关无响应)

4) 将 172.17.0.1、...2、...3 添加到主机应用程序的白名单中(桥接网络为 172.17.0.0,后续容器将在此范围内分配)

sudo docker run -t  myimage

Error: Couldn't connect to TWS. Confirm that "Enable ActiveX and Socket Clients" is enabled on the TWS "Configure->API" menu.

(主机无响应)

这非常糟糕,但也不起作用。

PS 请注意,这与尝试在容器内运行主机应用程序 IB 网关的问题不同 - 我不会这样做。

我不想在另一个容器内运行主机应用程序,尽管在某些方面这可能是一个更简洁的解决方案。

最佳答案

运行 IB 网关在许多不同级别上都很棘手,包括连接到它,特别是如果您想要自动化该过程。

我们仔细研究了从其他 IP 连接到它的情况,最后放弃了它——据我们所知,这是网关错误。有一个可以连接到网关的白色IP设置,但它不起作用并且无法编写脚本。

在我们的构建过程中,我们创建一个 Docker 基础镜像,然后将网关和任何/所有网关的客户端添加到该镜像。然后我们运行最终的图像。

关于Docker容器无法使用IP白名单连接到主机应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41746168/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com