我正在尝试启动一个在python 3中运行龙卷风应用程序的docker容器。 它提供一些API调用,并将数据写入系统上的rethinkdb服务。 RethinkDB不在容器内运行。 它运行的系统是ubuntu 16.04。
每当我尝试使用docker-compose启动docker时,它会崩溃,表示与localhost:28015的连接被拒绝。 我研究了这个问题并意识到docker有自己的网络,并且必须在启动容器之前配置外部连接。 我使用a question I found中的此命令使其正常工作:
docker run -it --name "$container_name" -d -h "$host_name" -p 9080:9080 -p 1522:1522 "$image_name"
我已经更改了容器名称,主机名,端口和图像名称以适合我自己的应用程序。 现在,docker没有崩溃,但我有两个问题:
那么,如何在不将该数据库放入容器的情况下启动可以与我的rethinkdb数据库通信的docker?
如果您需要更多信息来回答这个问题,请告诉我们。
我很感激你的指导。
最终结果是docker将通过https提供请求。
例如,我有一个名为/ getURL的终点。
该请求包括在DB中验证的令牌。 URL如下所示:
https://some-domain.com/getURL
在与DB进行验证后,它将发回相关的响应。
docker需要能够通过rethinkdb服务在443和28015上进行通信。
(由于443和https包括使用证书,我很欣赏一个解决方案,在常规http上使用一些随机端口来处理这个问题,我会从那里拿出来)
谢谢!
P.S。当我在pycharm上没有docker的情况下启动它时,该服务正常工作,这是我遇到问题的docker配置。
答案 0 :(得分:0)
我找到了解决方案。 我需要添加它,以便容器可以连接到数据库和rethinkdb:
--network="host"
由于此解决方案现在适用于我,但它不是最佳解决方案,我现在不会将此标记为答案。