情况:我一直在通过SSH隧道从本地运行的 python 脚本连接到MongoDB。我为此使用SSHTunnelForwarder和PyMongo。 脚本的规模在某种程度上超出了我的Mac在合理的时间内可以执行的操作,这就是为什么我要开始将其部署到在Docker容器中运行的远程服务器的原因。我想先测试一下一切在本地工作。
问题:我对Docker不太熟悉,还没有找到可行/可理解的解决方案来从我的Docker容器内部隧道连接到MongoDB。
我发现这篇关于docker容器内部的连接如何为MYSQL数据库From inside of a Docker container, how do I connect to the localhost of the machine?发挥作用的极有帮助的帖子。
但是,不幸的是,我不明白如何设置所有内容才能使其通过隧道从容器内部访问MongoDB。
我认为我必须执行以下操作:
从终端创建SSH隧道(如何?),我目前在python脚本中使用SSHTunnelForwarder。
获取隧道本地端点的IP和端口(如何?)
使用--net = host host.docker.internal运行我的docker(就足够了吗?据我了解,host.docker.internal只能解析为我的本地IP,但是它怎么知道我的隧道终点?
然后我将如何在Docker容器中设置MongoDB客户端?我正在使用PyMongo,并且要设置客户端,我需要一个IP(将是远程绑定地址?)和一个端口(将是什么?)
欢呼