# elastic\_transport.ConnectionError: Connection error caused by: ConnectionError(Connection error caused by: NewConnectionError(\<urllib3.connection.HTTPConnection object at 0x7fab5b67c950\>: Failed to establish a new connection: \[Errno 111\] Connection refuse

**URL:** <https://discuss.elastic.co/t/elastic-transport-connectionerror-connection-error-caused-by-connectionerror-connection-error-caused-by-newconnectionerror-urllib3-connection-httpconnection-object-at-0x7fab5b67c950-failed-to-establish-a-new-connection-errno-111-connection-refuse/361545>\
**Category:** Elasticsearch\
**Tags:** docker, language-clients\
**Created:** [June 16, 2024, 12:06pm UTC](https://discuss.elastic.co/t/elastic-transport-connectionerror-connection-error-caused-by-connectionerror-connection-error-caused-by-newconnectionerror-urllib3-connection-httpconnection-object-at-0x7fab5b67c950-failed-to-establish-a-new-connection-errno-111-connection-refuse/361545 "2024-06-16T12:06:07Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![red\_beast](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/red_beast/32/135318_2.png) [@red\_beast](https://discuss.elastic.co/u/red_beast)\
**Post date:** [June 16, 2024, 12:06pm UTC](https://discuss.elastic.co/t/elastic-transport-connectionerror-connection-error-caused-by-connectionerror-connection-error-caused-by-newconnectionerror-urllib3-connection-httpconnection-object-at-0x7fab5b67c950-failed-to-establish-a-new-connection-errno-111-connection-refuse/361545/1 "2024-06-16T12:06:07Z")

</div>

Hello ,

I am trying to connect to Elasticsearch using docker but I keep getting connection refused error while elasticsearch is running on localhost:9200

This is my docker-compose file

```auto
version: '3.8'

services:
  api:
    container_name: api
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - "8000:8000"
    depends_on:
      - elasticsearch
    environment:
      - ELASTICSEARCH_URL=http://elasticsearch:9200
    networks:
      - elasticnet

  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.10.0
    container_name: elasticsearch
    environment:
      - node.name=es01
      - cluster.name=es-docker-cluster
      - discovery.type=single-node
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
      - xpack.security.enabled=false
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - esdata1:/usr/share/elasticsearch/data
    ports:
      - "9200:9200"
    networks:
      - elasticnet

  kibana:
    image: docker.elastic.co/kibana/kibana:7.10.0
    container_name: kibana
    depends_on:
      - elasticsearch
    environment:
      - ELASTICSEARCH_URL=http://elasticsearch:9200
      - ELASTICSEARCH_HOSTS=http://elasticsearch:9200
    ports:
      - "5601:5601"
    networks:
      - elasticnet

networks:
  elasticnet:

volumes:
  esdata1:

```

I am initiating Elasticsearch like this

```auto
from elasticsearch import Elasticsearch

class ElasticsearchClient:
    client = None

    @classmethod
    def get_instance(self):
        if self.client is None:
            self.client = Elasticsearch("http://elasticsearch:9200")
            print("Connected to Elasticsearch!", self.client.info())
        return self.client

```

Can anyone tell me what the problem is ?

---

<div class="post-metadata">

**Author:** ![ltrotta](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/ltrotta/32/124003_2.png) [@ltrotta](https://discuss.elastic.co/u/ltrotta)\
**Post date:** [June 17, 2024, 7:45am UTC](https://discuss.elastic.co/t/elastic-transport-connectionerror-connection-error-caused-by-connectionerror-connection-error-caused-by-newconnectionerror-urllib3-connection-httpconnection-object-at-0x7fab5b67c950-failed-to-establish-a-new-connection-errno-111-connection-refuse/361545/2 "2024-06-17T07:45:07Z")

</div>

Hello! The problem here is the docker compose, Elasticsearch is exposed on port 9200, so mapping internal port 8000 to external 8000 does nothing in this case, `ports` should be "9200:9200".

---

<div class="post-metadata">

**Author:** ![Miguel\_Grinberg](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/miguel_grinberg/32/122639_2.png) [@Miguel\_Grinberg](https://discuss.elastic.co/u/Miguel_Grinberg)\
**Post date:** [June 17, 2024, 10:40am UTC](https://discuss.elastic.co/t/elastic-transport-connectionerror-connection-error-caused-by-connectionerror-connection-error-caused-by-newconnectionerror-urllib3-connection-httpconnection-object-at-0x7fab5b67c950-failed-to-establish-a-new-connection-errno-111-connection-refuse/361545/3 "2024-06-17T10:40:25Z")

</div>

What happens if you open to `http://localhost:9200` in your web browser while the docker compose containers are up?
