elasticsearch - 如何连接到在 vagrant guest os 中运行 elasticsearch 的 docker box?

标签 elasticsearch docker vagrant

我正在尝试启动一个 vagrant box,它会依次拉入 docker elasticsearch 图像...

VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  # virtualbox provider for ububtu box
  config.vm.provider "virtualbox" do |v|
    v.memory = 1024
    v.cpus = 1
  end

  config.vm.provision "docker"

  #pull docker image from https://registry.hub.docker.com/u/library/elasticsearch/
  config.vm.provision "docker" do |d|
    d.pull_images "elasticsearch"
    d.run "elasticsearch"
  end

  config.vm.box = "ubuntu/trusty64"

  config.vm.network "private_network", ip: "192.168.33.150"

  config.vm.synced_folder ".", "/vagrant"

end

然后我可以 vagrant ssh 进入 vagrant box, 运行 docker inspect [image id] 以获取正在运行的 docker 镜像的 ip 地址并运行此...

vagrant@vagrant-ubuntu-trusty-64:~$ curl -X GET http://172.17.0.2:9200
{
  "status" : 200,
  "name" : "Nocturne",
  "cluster_name" : "elasticsearch",
  "version" : {
    "number" : "1.4.4",
    "build_hash" : "c88f77ffc81301dfa9dfd81ca2232f09588bd512",
    "build_timestamp" : "2015-02-19T13:05:36Z",
    "build_snapshot" : false,
    "lucene_version" : "4.10.3"
  },
  "tagline" : "You Know, for Search"
}

因此 elasticsearch 运行良好。问题是 172.17.0.2 ip 是动态的。因此,如果我想从客户操作系统访问 elasticsearch,我需要检查 docker 镜像以获取它。

我可以用 vagrant 定义 172.17.0.x ip 地址吗? 有没有更好的方法在 docker 镜像中“发现”elasticsearch?

最佳答案

我想你想在 vagrant IP 上公开 elasticsearch 端口。您应该能够在 d.run 部分按照以下行执行此操作:

d.run "elasticsearch",
  args: "-p '9200:9200'"

(文档为 here)

那么你应该可以使用 vagrant IP 例如 curl 192.168.33.150:9200

关于elasticsearch - 如何连接到在 vagrant guest os 中运行 elasticsearch 的 docker box?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28842623/

相关文章:

docker - 在 Docker 构建过程中从主机复制文件以最小化图像大小

ubuntu - .net core web api访问容器中的文件夹

elasticsearch - Elasticsearch 不返回突出显示结果

Elasticsearch NEST 重用 ElasticClient 进行不同的索引查询

amazon-web-services - ecs 容器定义内的环境变量与 Dockerfile 中定义的相同环境变量。将使用哪一个?

linux - 在 debian 上安装 cassandra 时获取类型 echo 未知

vagrant - 如何调试 "Vagrant cannot forward the specified ports on this VM"消息

windows - Vagrant 未初始化常量 MixinSyncedFolders

python - level必须是整数,elasticsearch报错

elasticsearch - Logstash无法与Elastic一起使用