docker elasticsearch Container, der den Port nicht weiterleitet

7

Ich habe einen Container eingerichtet, um elasticsearch zu betreiben. Der Dienst startet, aber ich kann keine Verbindung zu ihm über Curl oder den Browser herstellen.

%Vor%

Das Verbinden mit http://localhost:9200 ergibt nichts. Das Andockfenster ps zeigt Ports;

%Vor%

Fehle ich etwas Konfigurationswert? DANKE!

[Update] Ich habe auch versucht, die Option -p im run-Befehl

%Vor%     
Will Lopez 14.08.2014, 16:21
quelle

3 Antworten

6

Ich habe Ihre Dockerfile getestet, aber es funktioniert einfach.

%Vor%

Ich versuche diese Dockerfile zu erstellen und sie auszuführen.

%Vor%

Wie Sie unten sehen können, gibt die Anfrage 127.0.0.1:9200 die Antwort von json zurück.

%Vor%

Überprüfen Sie Ihre -p -Option. Es bedeutet, den Container-Port für den Host zu veröffentlichen. Wenn Sie nicht explizit den Port des Hosts schreiben, weisen Sie dem Docker einen zufälligen Port wie unten zu.

%Vor%

0.0.0.0:49153->9200/tcp bedeutet, dass Sie über den Port 49153 des Hosts auf den 9200-Port des Containers zugreifen können.

%Vor%

Wenn Sie also den Host s 9200 port, explicitly write the host port like -p 9200: 9200 or -p 0.0.0.0:9200:9200 '

verwenden möchten %Vor%

Wenn das immer noch nicht funktioniert, versuchen Sie --net=host -Option. Sie können den Hostnetzwerkstapel innerhalb des Containers verwenden, indem Sie diese Option verwenden.

%Vor%

Wenn beide nicht funktionieren, denke ich, dass Sie Ihre andere Netzwerkkonfiguration überprüfen müssen.

    
nacyot 15.08.2014, 05:00
quelle
14

Wenn Sie docker unter OSX ausführen, beachten Sie, dass der Host wirklich die VirtualBox-Instanz ist, die bei der Initialisierung von boot2docker installiert wurde. Also in dieser Situation, anstatt zu verwenden:

curl http://localhost:9200

finde die IP der virtuellen Box-Instanz mit, die ich als VM_IP bezeichnen werde:

boot2docker ip

versuche es dann:

curl http://<VM_IP>:9200

    
Guam Wang 25.09.2014 20:51
quelle
7

Ich hatte ein Problem mit der Portweiterleitung, wenn Elasticsearch in einem Andock-Container ausgeführt wurde. Ich löste das Problem, indem ich manuell festlegte, welche Schnittstellen den Elasticsearch Server docker run --rm -p 9200:9200 -p 9300:9300 --name=es elasticsearch:latest -Des.network.host=0.0.0.0 binden sollten.

Der bindende Teil ist der -Des.network.host=0.0.0.0 am Ende. Ich schrieb einen Blog-Post, der dies bei Ссылка

detailliert beschreibt     
Madis Nõmme 17.09.2016 16:10
quelle

Tags und Links