如何连接到 vagrant guest os 中的 docker box 运行 elasticsearch?
How to connect to a docker box running elasticsearch inside a vagrant guest os?
我正在尝试启动一个 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]
获取 运行ning 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 是动态的。因此,如果我想从访客 OS 访问 elasticsearch,我需要检查 docker 图像以获取它。
我可以用 vagrant 定义 172.17.0.x ip 地址吗?
在 docker 图像中 'discover' elasticsearch 有更好的方法吗?
我想你想在 vagrant IP 上公开 elasticsearch 端口。您应该能够在 d.run
部分按照以下行执行此操作:
d.run "elasticsearch",
args: "-p '9200:9200'"
(文档为 here)
那你应该可以使用curl 192.168.33.150:9200
这样的vagrant IP
我正在尝试启动一个 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]
获取 运行ning 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 是动态的。因此,如果我想从访客 OS 访问 elasticsearch,我需要检查 docker 图像以获取它。
我可以用 vagrant 定义 172.17.0.x ip 地址吗? 在 docker 图像中 'discover' elasticsearch 有更好的方法吗?
我想你想在 vagrant IP 上公开 elasticsearch 端口。您应该能够在 d.run
部分按照以下行执行此操作:
d.run "elasticsearch",
args: "-p '9200:9200'"
(文档为 here)
那你应该可以使用curl 192.168.33.150:9200