我有這個簡單的設置: 一個Dockerfile:連接到主機elasticsearch乳寧實例
FROM centos:latest
RUN yum update -y
RUN yum install -y epel-release
RUN yum install -y java-1.8.0-openjdk
RUN yum install -y curl
RUN mkdir /var/totest
EXPOSE 9200
EXPOSE 9300
而且主機上我有elasticsearch 5.4.2的運行實例。
當我在主機上做捲曲http://localhost:9200我得到正確的迴應:
{
"name" : "T8apV_J",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "YFkkaM8dSJCnXbDFRFD_aw",
"version" : {
"number" : "5.4.2",
"build_hash" : "929b078",
"build_date" : "2017-06-15T02:29:28.122Z",
"build_snapshot" : false,
"lucene_version" : "6.5.1"
},
"tagline" : "You Know, for Search"
}
但是,如果我建碼頭工人形象,我跑
docker run -p 9200:9200 -it my-simple-image /bin/bash
我得到這個錯誤:
docker: Error response from daemon: driver failed programming external connectivity on endpoint infallible_brown (71c6fae1275d149b2708a1aa9b737278d340c4e7b073d858b4222eb0268ef285): Error starting userland proxy: listen tcp 0.0.0.0:9200: bind: address already in use.
如何從docker容器內部連接到運行elasticsearch instan的主機CE?
所有我需要的是能夠從容器
捲曲http://localhost:9200/index_name/_search