在docker容器外部访问vespa时出现问题

时间:2018-12-10 06:01:54

标签: docker networking bigdata yahoo-api vespa

在Mac上安装了Docker,并按照以下链接中指定的步骤尝试在Docker上运行Vespa https://docs.vespa.ai/documentation/vespa-quick-start.html

直到第4步我都没有遇到任何问题。我看到在第2步和第3步之后运行的vespa容器返回了200 OK响应。

但是步骤5无法返回200 OK响应。以下是我在终端上运行的命令 curl -s --head http://localhost:8080/ApplicationStatus

我不断得到

  

curl: (52) Empty reply from server,只要我不带-s选项运行。

所以我试图查看vespa容器中的侦听端口,但看不到8080的任何内容,但可以看到19071(在步骤3中使用)

➜  ~ docker exec vespa bash -c 'netstat -vatn| grep 8080'  

➜  ~ docker exec vespa bash -c 'netstat -vatn| grep 19071'

tcp        0      0 0.0.0.0:19071           0.0.0.0:*               LISTEN     

以下文档具有与vespa端口相关的信息

https://docs.vespa.ai/documentation/reference/files-processes-and-ports.html

我假设docker运行后端口8080应该处于活动状态(快速启动链接的第2步),并且可以在完成端口映射后在容器外部进行访问。 但是我首先没有看到8080端口在容器内部处于活动状态。 我错过了什么吗?除了快速入门中提到的以外,我还需要执行其他任何步骤吗?仅供参考,我在docker内部安装了Jenkins,并能够通过端口映射访问外部容器。但是不确定为什么它不能与vespa一起使用。我一直在安静的地方尝试,但是没有任何进展。如果我在这里缺少东西,请告诉我。

2 个答案:

答案 0 :(得分:4)

您的Docker容器的内存太低,“专用于Docker的最小6GB内存(在Mac上默认为2GB)。”。参见https://docs.vespa.ai/documentation/vespa-quick-start.html

死锁检测器警告和无法从配置服务器获取配置(很可能是oom被杀死)表明您的内存太低。

答案 1 :(得分:2)

我的猜测是您的jdisc容器尚未完成初始化或未正确初始化?您是否尝试查看日志?

docker exec vespa bash -c '/opt/vespa/bin/vespa-logfmt /opt/vespa/logs/vespa/vespa.log'

这应该告诉您是否有问题。准备接收请求时,您会看到类似以下内容的

[2018-12-10 06:30:37.854] INFO    : container        Container.org.eclipse.jetty.server.AbstractConnector   Started SearchServer@79afa369{HTTP/1.1,[http/1.1]}{0.0.0.0:8080}
[2018-12-10 06:30:37.857] INFO    : container        Container.org.eclipse.jetty.server.Server  Started @10280ms
[2018-12-10 06:30:37.857] INFO    : container        Container.com.yahoo.container.jdisc.ConfiguredApplication  Switching to the latest deployed set of configurations and components. Application switch number: 0
[2018-12-10 06:30:37.859] INFO    : container        Container.com.yahoo.container.jdisc.ConfiguredApplication  Initializing new set of configurations and components. Application switch number: 1