如何连接到一个在一个无业客人操作系统里面运行elasticsearch的docker box?

我试图启动一个stream浪者箱子,反过来拉入docker弹性search图像…

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到stream浪者的箱子,运行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是dynamic的。 所以,如果我想从客户操作系统访问弹性search,我需要检查泊坞窗图像来获取它。

我可以用vagrant定义172.17.0.x的IP地址吗? 有没有更好的方法来“发现”泊坞窗图像中的elasticsearch?

我想你想在stream浪IP上暴露elasticsearch端口。 您应该能够在d.run部分中按照以下内容执行此操作:

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

(文档在这里 )

那么你应该可以使用curl 192.168.33.150:9200等stream浪IP