【发布时间】: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 配置。
【问题讨论】:
标签: docker docker-compose rethinkdb