Elasticsearch avec Docker

Comme évoqué dans un précédent article, j’ai décidé de me mettre (modestement) à Docker. Comme je devais utiliser elasticsearch pour un projet, j’ai dit pourquoi pas utiliser l’image docker. Voici les actions que j’ai réalisé et le (petit) problème vite résolu.

 

elasticdocker

Installation

Que du simple et du basique. elastic.co fournit une image officielle.

$ docker pull elasticsearch

Problème de binding réseau

Si je démarre l’instance de manière classique, j’ai un petit soucis de binding réseau. En effet, l’instance Docker positionne le hostname à 172.17.0.1 et … ça occasionne quelques soucis lors de l’appel à mon cluster (ex.: timeout, impossibilité de joindre le cluster, catastrophe nucléaire,…).

Si on exécute la requête suivante : http://localhost:9200/_nodes/process?pretty&utm_source=rss&utm_medium=rss on obtient :

{
  "cluster_name" : "elasticsearch",
  "nodes" : {
    "22UAJOAUSK6931WBFBvZtQ" : {
      "name" : "Blind Faith",
      "transport_address" : "inet[<strong>/172.17.0.1:9300]</strong>",
      "host" : "710b5c9bff05",
      "ip" : "172.17.0.1",
      "version" : "1.7.2",
      "build" : "e43676b",
      "http_address" : "inet[/<strong>172.17.0.1:9200</strong>]",
      "process" : {
        "refresh_interval_in_millis" : 1000,
        "id" : 1,
        "max_file_descriptors" : 1048576,
        "mlockall" : false
      }
    }
  }
}

Bref, ça ne le fait pas. Pour pouvoir utiliser cette image sans avoir à créer ma propre image, j’ai donc positionné les variables HOSTNAME, es.network.bind_host et es.network.host au démarrage de la machine.

docker run -i -t -d --name elasticsearch -p 9200:9200 \\
-e HOSTNAME=127.0.0.1 elasticsearch -Des.network.bind_host=0.0.0.0 \\
-Des.network.host=127.0.0.1

Maintenant j’ai la configuration suivante :

{
  "cluster_name" : "elasticsearch",
  "nodes" : {
    "0g0flJVhQ8qtH7fRFqywvQ" : {
      "name" : "Sweetface",
      "transport_address" : "inet[/127.0.0.1:9300]",
      "host" : "127.0.0.1",
      "ip" : "127.0.0.1",
      "version" : "1.7.2",
      "build" : "e43676b",
      "http_address" : "inet[/127.0.0.1:9200]",
      "process" : {
        "refresh_interval_in_millis" : 1000,
        "id" : 1,
        "max_file_descriptors" : 1048576,
        "mlockall" : false
      }
    }
  }
}

Vus : 869
Publié par Littlewing : 368