Ich habe diese einfache Einrichtung: A Dockerfile:Connect von Docker Container Host Elasticsearch Instanz runing
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
Und auf Host-Maschine Ich habe eine laufende Instanz von Elasticsearch 5.4.2.
Wenn ich auf dem Host tun curl http://localhost:9200 erhalte ich die richtige Antwort:
{
"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"
}
aber, wenn ich das Docker Bild bauen, und ich laufen
docker run -p 9200:9200 -it my-simple-image /bin/bash
ich diesen Fehler:
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.
Wie kann ich vom Docker Container zu dem Host verbinden, auf dem elasticsearch instan ausgeführt wird ce?
Alles was ich brauche ist in der Lage sein, aus dem Innern des Behälter
curl http://localhost:9200/index_name/_search