【问题标题】:Orion Context Broker and Docker - Empty reply from serverOrion Context Broker 和 Docker - 来自服务器的空回复
【发布时间】:2017-10-24 13:21:05
【问题描述】:

我最近开始了涉及 Orion Context Broker 的项目。尝试使用 docker 在 Windows 上启动它。

https://hub.docker.com/r/fiware/orion/

第一种方法效果不好,我在使用教程中的原始代码时遇到的错误是:

   ERROR: yaml.parser.ParserError: while parsing a block mapping
   in ".\docker-compose.yml", line 1, column 1
   expected <block end>, but found '<block mapping start>'
   in ".\docker-compose.yml", line 5, column 2

然后我决定继续使用第二种方法,我使用默认参数启动 mongoDB。我让它监听连接并使用 docker 站点的 2A 方式。

   sudo docker run -d --name orion1 -p 1026:1026 fiware/orion

它似乎已经启动,因为它在启动时没有返回任何错误。但是,如果我使用:

   curl localhost:1026/version

我没有收到任何响应,它只是冻结并且在 mongoDB 控制台中我没有任何新连接。 docker 容器的地址是对的。防火墙已关闭。它似乎没有连接,但它正在运行。如果我想重新启动 orion 上下文代理,它会告诉我它已经在运行,所以我停止它,删除 orion1 并重新启动它。当我从另一个控制台连接到正在运行的 mongoDB 时,它会显示一个新连接,而在与 Context Broker 连接时却没有。

当我检查 CB 日志时,我得到了

time=Tuesday 24 Oct 21:37:32 2017.378Z | lvl=ERROR | corr=N/A 
trans=N/A | from=N/A | srv=N/A | subsrv=N/A | comp=Orion | 
op=mongoConnectionPool.cpp[152]:mongoConnect |
msg=Database Startup Error (cannot connect to mongo - doing 100 retries  with a 1000 microsecond interval)

【问题讨论】:

  • 你得到的 docker-compose.yml 中的错误有点奇怪......你是怎么得到那个文件的?从hub.docker.com/r/fiware/orion复制粘贴?
  • 是的,撰写文件是从该站点复制粘贴的,所以对我来说,会发生这样的错误似乎很不可思议。我按照他们的意愿运行它。至于猎户座地址,我的帖子中有一个编辑。

标签: mongodb docker fiware fiware-orion


【解决方案1】:

关于 docker-compose.yml 失败,复制粘贴有时很棘手......我会推荐你​​to download directly from github repository。以下应该有效:

wget https://raw.githubusercontent.com/telefonicaid/fiware-orion/master/docker/docker-compose.yml

关于 Orion docker 连接数据库失败的问题,请看section 2B in the docker documentation

sudo docker run -d --name orion1 --link mongodb:mongodb -p 1026:1026 fiware/orion -dbhost mongodb

您似乎缺少--link mongodb:mongodb 参数(当然,这需要之前运行名为mongodb 的MongoDB docker)。

【讨论】:

  • 你现在是 orion 和 mongo 开始使用第一种方法。但是我无法连接到它,因为 curl : 无法连接到远程服务器。防火墙已关闭,我正在使用正确的 ip 和端口。 Docker 现在启动没有任何错误。
  • curl docAddr:1026/version 其中 docAddr 是在 docker 中运行的 orion 容器的 ipv4 地址。
  • 我现在试了一下,效果很好。我将地址更改为容器 ip,因为在带有 localhost 的命令返回超时之前,但它是在 orion 正常启动之前。现在可以了,谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多