使用Docker在Azure VM上运行elasticsearch:无法通过localhost

时间:2015-09-02 14:22:28

标签: azure curl elasticsearch docker virtual-machine

我是弹性搜索和虚拟机的新手(我是一名数据分析师,但是我必须在蔚蓝云上设置弹性搜索,以便稍后进行分析);如果我的问题很愚蠢,请原谅我。 我在Azure市场上安装了可用于弹性搜索的Docker容器。 Elastcsearch已启动并正在运行,ping指定的IP正在返回预期的结果:

~$ curl 172.xx.x.x:9200
{
  "status" : 200,
  "name" : "Black Crow",
  "cluster_name" : "elasticsearch",
  "version" : {
    "number" : "1.7.1",
    "build_hash" : "b88f43fc40b0bcd7f173a1f9ee2e97816de80b19",
    "build_timestamp" : "2015-07-29T09:54:16Z",
    "build_snapshot" : false,
    "lucene_version" : "4.10.4"
  },
  "tagline" : "You Know, for Search"
}

我还下载了" head"用于在VM上测试开发的插件。但是我无法在localhost:9200上运行它。

~$ curl localhost:9200给出: curl:(7)无法连接到localhost端口9200:连接被拒绝 编辑:在添加-p flag以将localhost的9200绑定到vm的9200之后立即工作。但是仍然在浏览器上运行localhost:9200并不连接。对此,ip是无法发现的。如何让它被发现?

我尝试过类似的东西 docker run -d -p 9200:9200 -p 9300:9300 -v $ HOME / data:/ data elasticsearch / elasticsearch / bin / elasticsearch(从http://www.codedependant.net/2015/01/17/install-elastic-search-plugins-through-docker/修改)但它不起作用。

My $ Home目录如下所示:

ls $HOME/*
/home/company/wget-log

/home/company/config:

/home/company/data:
elasticsearch.yml  plugins

/home/company/es:
plugins

(上面这个文件夹包含插件,而不是其他"插件" / data中的文件夹)

/home/company/esdata:
elasticsearch

任何帮助将不胜感激。非常感谢

1 个答案:

答案 0 :(得分:0)

所以,你提到了一个浏览器。通常您从本地计算机运行浏览器。在这种情况下,在Windows 10计算机上,' localhost'永远不会解析为Docker容器。您的docker容器无法直接在Windows上运行,因此必须在其他位置运行。

如果您在azure vm上运行docker命令,则应该转到http:<azure vm ip>:9200。如果您在计算机上运行它们,使用Docker计算机或boot2docker定位笔记本电脑上安装的docker引擎,则它应为http:<local vm ip>:9200

如果在本地运行,您可以使用该机器的IP boot2docker ipdocker-machine ls