Docker 내에서 elasticsearch 사용 : 새 연결을 설정하지 못했습니다.

zenofpython

현재 Elasticsearch를 사용하여 데이터베이스에 쓰기를 포함하는 애플리케이션을 컨테이너화하려고 시도하고 있지만 연결 문제가 발생합니다. docker-compose.yml파일은 현재 다음과 같은 :

version: "3"
services:
  es:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.5.1
    container_name: es
    environment:
      - node.name=es
      - cluster.name=es-docker-cluster
      - cluster.initial_master_nodes=es
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    ports:
      - 9200:9200
    volumes:
      - esdata:/usr/share/elasticsearch/data
    networks:
      - dash-network
  dash:
    build: .
    depends_on:
      - es
    ports:
      - 5000:5000
    volumes:
       - .:/usr/src/dash
    networks:
      - dash-network

volumes:
  esdata:
    driver: local

networks:
  dash-network:
    driver: bridge

내 Python 코드에는 다음이 포함됩니다.

import elasticsearch
es = elasticsearch.Elasticsearch([{'host': 'es', 'port': 9200}])
es.index(index="spam", body={'eggs': 11})

docker-compose up그러나 실행하면 해당 코드 세그먼트의 마지막 줄에 다음 오류가 발생합니다.

esmqtt_1   | elasticsearch.exceptions.ConnectionError: ConnectionError(<urllib3.connection.HTTPConnection object at 0x7f2f60b53dd0>: Failed to establish a new connection: [Errno 111] Connection refused) caused by: NewConnectionError(<urllib3.connection.HTTPConnection object at 0x7f2f60b53dd0>: Failed to establish a new connection: [Errno 111] Connection refused)

실험으로이 코드를 실행하기 전에 오랫동안 스크립트를 중지하고 컨테이너에 쉘링 한 다음이 세 명령을 각각 순차적으로 실행했습니다. 작동했습니다.

elliot@elliot-VirtualBox:~/path/to/dash$ sudo docker exec -it dash_dash_1 sh
# python
Python 3.7.6 (default, Jan  3 2020, 23:24:26) 
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import elasticsearch
>>> es = elasticsearch.Elasticsearch([{'host': 'es', 'port': 9200}])
>>> es.index(index="spam", body={'eggs': 11})
{'_index': 'spam', '_type': '_doc', '_id': '3Ey5zm8B7hzXos4SVZsF', '_version': 1, 'result': 'created', '_shards': {'total': 2, 'successful': 1, 'failed': 0}, '_seq_no': 0, '_primary_term': 1}

Dockerfile에 의해 실행될 때 내 코드가 실패하는 이유를 모르겠지만 쉘 인하면 작동합니다. 이전 인스턴스에서는 연결에 실패하고 후자의 인스턴스에서는 성공하는 이유는 무엇입니까? 모든 팁이나 조언을 환영합니다!

zenofpython

다른 컨테이너를 동시에 실행 dash하려고했기 때문에 Elasticsearch 설정이 완료되기 전에 컨테이너가 연결을 시도했습니다. 진행하기 전에 준비가되었는지 확인하기 위해 다음 루프를 사용합니다.

while True:
    try:
        es.search(index="")
        break
    except (
        elasticsearch.exceptions.ConnectionError,
        elasticsearch.exceptions.TransportError
    ):
        time.sleep(1)

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

MacOS 용 Docker에서 NuoDB 설정. NuoDB에 연결하지 못했습니다. [08S01] 호스트에 연결할 수 없습니다.

분류에서Dev

스프링 부트 새로 설정된 연결의 유효성을 검사하지 못했습니다.

분류에서Dev

Elasticsearch가 DSL을 사용하는 기존 문서를 찾지 못했습니다.

분류에서Dev

AWS CLI ce 명령으로 새 연결을 설정하지 못했습니다.

분류에서Dev

연결된 새 기본 설정 has_one 연결을 저장하지 못했습니다.

분류에서Dev

illegalStateException : Adobe Livecycle에서 toPS 작업을 사용할 때 서비스 esxception을 연결하지 못했습니다.

분류에서Dev

Linux에서 JMX 인증 사용을 시작하는 동안 JMX에 연결하지 못했습니다.

분류에서Dev

Python을 사용하여 SQL Server에 연결할 때 ''사용자가 로그인하지 못했습니다.

분류에서Dev

docker D-Bus 연결을 얻지 못했습니다 : 작업이 허용되지 않습니다.

분류에서Dev

"사용자 계정 설치 ...."에서 Windows 8.1을 8에서 업그레이드하지 못했습니다.

분류에서Dev

ggplot2에서 boxplot을 사용하지 못했습니다.

분류에서Dev

USB를 사용하여 PC에 연결된 휴대폰을 감지하지 못했습니다.

분류에서Dev

Direct Line을 사용하여 봇 프레임 워크에 연결하지 못했습니다 (500).

분류에서Dev

Hive에서 새 테이블을 만들지 못했습니다.

분류에서Dev

Spring JDBC가 Oracle 11g와 새로 설정된 연결을 검증하지 못했습니다.

분류에서Dev

Excel에서 설정된 외부 데이터 연결을 사용하여 OLAP 큐브를 사용할 수 없지만 동일한 분석 서버로 새 연결을 만들 수 있습니다.

분류에서Dev

네트워크 설정을 적용하지 못했습니다.이 기기를 통해 Bluetooth 네트워크에 연결하십시오.

분류에서Dev

200 PORT 명령이 성공했습니다. PASV 사용을 고려하십시오. 425 연결을 설정하지 못했습니다.

분류에서Dev

Postgre DB 연결을 닫고 레일에 다른 DB 루비를 사용하여 새 연결을 엽니 다.

분류에서Dev

Android <21에서 Retrofit 2를 사용하여 HTTPS에 연결하지 못했습니다.

분류에서Dev

Office 2016에서 Office 계정에 연결할 수 없음 : "관리자가이 기능을 사용하지 않도록 설정했습니다."

분류에서Dev

Gitlab piepline + docker : (7) localhost 포트 9000에 연결하지 못했습니다 : 연결 거부

분류에서Dev

composer를 사용하여 Windows에 laravel을 설치할 수 없습니다. Stream : Permision을 열지 못했습니다.

분류에서Dev

getter를 사용하여 Java에서 값을 전달하지 못했습니다.

분류에서Dev

Django에서 SelectMultiple을 사용하여 저장하지 못했습니다.

분류에서Dev

내 Microsoft 계정을 사용하지만 이전 사용자 설정을 복사하지 않고 Windows 10을 새로 설치하는 방법이 있습니까?

분류에서Dev

django 및 docker를 사용하여 localhost : 8000에서 "연결이 재설정되었습니다."

분류에서Dev

Django에서 사용자 양식을 확장하지 못했습니다.

분류에서Dev

데이터베이스 서버에 연결하지 못했습니다. PowerShell 및 통합 보안을 사용하여 내 로컬 호스트에없는 데이터베이스에 어떻게 연결합니까?

Related 관련 기사

  1. 1

    MacOS 용 Docker에서 NuoDB 설정. NuoDB에 연결하지 못했습니다. [08S01] 호스트에 연결할 수 없습니다.

  2. 2

    스프링 부트 새로 설정된 연결의 유효성을 검사하지 못했습니다.

  3. 3

    Elasticsearch가 DSL을 사용하는 기존 문서를 찾지 못했습니다.

  4. 4

    AWS CLI ce 명령으로 새 연결을 설정하지 못했습니다.

  5. 5

    연결된 새 기본 설정 has_one 연결을 저장하지 못했습니다.

  6. 6

    illegalStateException : Adobe Livecycle에서 toPS 작업을 사용할 때 서비스 esxception을 연결하지 못했습니다.

  7. 7

    Linux에서 JMX 인증 사용을 시작하는 동안 JMX에 연결하지 못했습니다.

  8. 8

    Python을 사용하여 SQL Server에 연결할 때 ''사용자가 로그인하지 못했습니다.

  9. 9

    docker D-Bus 연결을 얻지 못했습니다 : 작업이 허용되지 않습니다.

  10. 10

    "사용자 계정 설치 ...."에서 Windows 8.1을 8에서 업그레이드하지 못했습니다.

  11. 11

    ggplot2에서 boxplot을 사용하지 못했습니다.

  12. 12

    USB를 사용하여 PC에 연결된 휴대폰을 감지하지 못했습니다.

  13. 13

    Direct Line을 사용하여 봇 프레임 워크에 연결하지 못했습니다 (500).

  14. 14

    Hive에서 새 테이블을 만들지 못했습니다.

  15. 15

    Spring JDBC가 Oracle 11g와 새로 설정된 연결을 검증하지 못했습니다.

  16. 16

    Excel에서 설정된 외부 데이터 연결을 사용하여 OLAP 큐브를 사용할 수 없지만 동일한 분석 서버로 새 연결을 만들 수 있습니다.

  17. 17

    네트워크 설정을 적용하지 못했습니다.이 기기를 통해 Bluetooth 네트워크에 연결하십시오.

  18. 18

    200 PORT 명령이 성공했습니다. PASV 사용을 고려하십시오. 425 연결을 설정하지 못했습니다.

  19. 19

    Postgre DB 연결을 닫고 레일에 다른 DB 루비를 사용하여 새 연결을 엽니 다.

  20. 20

    Android <21에서 Retrofit 2를 사용하여 HTTPS에 연결하지 못했습니다.

  21. 21

    Office 2016에서 Office 계정에 연결할 수 없음 : "관리자가이 기능을 사용하지 않도록 설정했습니다."

  22. 22

    Gitlab piepline + docker : (7) localhost 포트 9000에 연결하지 못했습니다 : 연결 거부

  23. 23

    composer를 사용하여 Windows에 laravel을 설치할 수 없습니다. Stream : Permision을 열지 못했습니다.

  24. 24

    getter를 사용하여 Java에서 값을 전달하지 못했습니다.

  25. 25

    Django에서 SelectMultiple을 사용하여 저장하지 못했습니다.

  26. 26

    내 Microsoft 계정을 사용하지만 이전 사용자 설정을 복사하지 않고 Windows 10을 새로 설치하는 방법이 있습니까?

  27. 27

    django 및 docker를 사용하여 localhost : 8000에서 "연결이 재설정되었습니다."

  28. 28

    Django에서 사용자 양식을 확장하지 못했습니다.

  29. 29

    데이터베이스 서버에 연결하지 못했습니다. PowerShell 및 통합 보안을 사용하여 내 로컬 호스트에없는 데이터베이스에 어떻게 연결합니까?

뜨겁다태그

보관