title: org.elasticsearch.client.transport.NoNodeAvailableException: None of the configured nodes are available: []
body: <p>I am running <code>ElasticSearch</code> on <code>Docker</code> which is available locally as  </p>
  
  <pre><code>$ curl http://192.168.99.100:9200/?pretty
  {
    "status" : 200,
    "name" : "Collector",
    "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"
  }
  </code></pre>
  
  <p>I am using <a href="https://github.com/sksamuel/elastic4s" rel="nofollow">Elastic4s</a>, for connecting to <code>ElasticSearch</code>, I tried following approach, but all of them gave me error as </p>
  
  <pre><code>val client = ElasticClient.remote(host = "192.168.99.100", port = 9200)
  </code></pre>
  
  <p>and</p>
  
  <pre><code>val settings = ImmutableSettings.settingsBuilder().put("cluster.name", "elasticsearch").build()
    val uri = ElasticsearchClientUri("elasticsearch://192.168.99.100:9200")
    val client = ElasticClient.remote(uri)
  </code></pre>
  
  <p>The error is  </p>
  
  <pre><code>Exception in thread "main" org.elasticsearch.client.transport.NoNodeAvailableException: None of the configured nodes are available: []
      at org.elasticsearch.client.transport.TransportClientNodesService.ensureNodesAreAvailable(TransportClientNodesService.java:305)
      at org.elasticsearch.client.transport.TransportClientNodesService.execute(TransportClientNodesService.java:200)
      at org.elasticsearch.client.transport.support.InternalTransportClient.execute(InternalTransportClient.java:106)
      at org.elasticsearch.client.support.AbstractClient.index(AbstractClient.java:102)
      at org.elasticsearch.client.transport.TransportClient.index(TransportClient.java:340)
      at com.sksamuel.elastic4s.IndexDsl$IndexDefinitionExecutable$$anonfun$apply$1.apply(IndexDsl.scala:23)
      at com.sksamuel.elastic4s.IndexDsl$IndexDefinitionExecutable$$anonfun$apply$1.apply(IndexDsl.scala:23)
      at com.sksamuel.elastic4s.Executable$class.injectFuture(Executable.scala:21)
      at com.sksamuel.elastic4s.IndexDsl$IndexDefinitionExecutable$.injectFuture(IndexDsl.scala:20)
      at com.sksamuel.elastic4s.IndexDsl$IndexDefinitionExecutable$.apply(IndexDsl.scala:23)
      at com.sksamuel.elastic4s.IndexDsl$IndexDefinitionExecutable$.apply(IndexDsl.scala:20)
      at com.sksamuel.elastic4s.ElasticClient.execute(ElasticClient.scala:28)
      at com.enterpriseconnector.persistence.Elastic$.insert(Elastic.scala:17)
      at com.enterpriseconnector.persistence.Test$$anonfun$1.apply(Elastic.scala:27)
      at com.enterpriseconnector.persistence.Test$$anonfun$1.apply(Elastic.scala:24)
      at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:245)
      at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:245)
      at scala.collection.immutable.Range.foreach(Range.scala:166)
      at scala.collection.TraversableLike$class.map(TraversableLike.scala:245)
      at scala.collection.AbstractTraversable.map(Traversable.scala:104)
      at com.enterpriseconnector.persistence.Test$.delayedEndpoint$com$enterpriseconnector$persistence$Test$1(Elastic.scala:24)
      at com.enterpriseconnector.persistence.Test$delayedInit$body.apply(Elastic.scala:23)
      at scala.Function0$class.apply$mcV$sp(Function0.scala:34)
      at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12)
      at scala.App$$anonfun$main$1.apply(App.scala:76)
      at scala.App$$anonfun$main$1.apply(App.scala:76)
      at scala.collection.immutable.List.foreach(List.scala:381)
      at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:35)
      at scala.App$class.main(App.scala:76)
      at com.enterpriseconnector.persistence.Test$.main(Elastic.scala:23)
      at com.enterpriseconnector.persistence.Test.main(Elastic.scala)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:497)
      at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
  </code></pre>
  
  <p>My complete code is </p>
  
  <pre><code>import java.util.Calendar
  
  import com.sksamuel.elastic4s.{ElasticsearchClientUri, ElasticClient}
  import com.sksamuel.elastic4s.ElasticDsl._
  import com.sksamuel.elastic4s.source.StringDocumentSource
  import org.elasticsearch.common.settings.ImmutableSettings
  
  object Elastic {
    println("Creating Elastic Connection")
    val settings = ImmutableSettings.settingsBuilder().put("cluster.name", "elasticsearch").build()
    val uri = ElasticsearchClientUri("elasticsearch://192.168.99.100:9200")
    val client = ElasticClient.remote(uri)
  
    def insert(monitorJson: String) = {
      client execute {
        index into "test" -&gt; "elastic4s" doc StringDocumentSource(monitorJson)
      }
    }
  }
  
  object Test extends App {
    for (_ &lt;- 1 to 100) yield {
      val json: String = s"{time: ${Calendar.getInstance().getTime()}}"
      println(s"inserting ${json}")
      Elastic.insert(json)
    }
  }
  </code></pre>