docker app 在 https 上服务并连接到外部 rethinkdb
Posted
技术标签:
【中文标题】docker app 在 https 上服务并连接到外部 rethinkdb【英文标题】:docker app serving on https and connecting to external rethinkdb 【发布时间】:2018-06-05 09:23:10 【问题描述】:我正在尝试启动一个在 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 没有崩溃,但是我有两个问题:
-
我无法通过浏览器通过指向https://localhost/login 访问它
我失去了 docker-compose 的使用。如果我们想在未来添加更多相互通信的服务,这将是一个问题。
那么,我如何启动一个可以与我的 rethinkdb 数据库通信的 docker,而无需将该数据库放入容器中? 如果您需要更多信息来回答这个问题,请告诉我。 感谢您在这方面的指导。 最终结果是 docker 将处理来自 https 的请求。 例如,我有一个名为 /getURL 的端点。 该请求包括在数据库中验证的令牌。网址是这样的: https://some-domain.com/getURL 在与数据库验证后,它将发回相关响应。 docker 需要能够在 443 和 28015 上与 rethinkdb 服务通话。
(由于 443 和 https 包括证书的使用,我希望有一个解决方案可以在常规 http 上使用一些随机端口来处理这个问题,我将从那里得到它) 谢谢!
附:当我在 pycharm 上没有 docker 启动它时,该服务可以工作,这是我遇到问题的 docker 配置。
【问题讨论】:
【参考方案1】:我找到了解决方案。 我需要添加这个,以便容器可以连接到数据库和 rethinkdb:
--network="host"
由于这个解决方案现在对我有用,但它不是最好的解决方案,我暂时不会将此标记为答案。
【讨论】:
以上是关于docker app 在 https 上服务并连接到外部 rethinkdb的主要内容,如果未能解决你的问题,请参考以下文章
Docker:Docker Appium 镜像连接夜安卓神模拟器,并处理 connection refused 异常
VSCode + docker + SSH实现远程连接服务器并进行开发
Dockerizing NestJS APP 和 MongoDB “首次连接时无法连接到服务器 [localhost:27017]”