본문 바로가기
Infra/ElasticSearch

ElasticSearch와 Kibana 설치. 도커 network 를 잡아줘야 함.

by 골든크랩 2025. 6. 19.
728x90
반응형

 

 

docker network create elastic-net

docker run -d --name elastic817 --network elastic-net \
  -p 9200:9200 -e "discovery.type=single-node" \
  -e "xpack.security.enabled=false" \
  docker.elastic.co/elasticsearch/elasticsearch:8.17.4


  docker run -d --name kibana --network elastic-net \
  -p 5601:5601 \
  -e "ELASTICSEARCH_HOSTS=http://elastic817:9200" \
  docker.elastic.co/kibana/kibana:8.17.4



도커에서 --network를 사용하면 Docker가 자체 DNS 서버를 제공하고, 그 덕분에 컨테이너 이름만으로 서로 통신할 수 있게 됩니다.
기능  설명
Docker 네트워크 생성 (bridge 또는 사용자 정의)   컨테이너들끼리 같은 네트워크 안에서 통신 가능
Docker 내부 DNS   컨테이너 이름으로 IP 자동 해석 (DNS 제공자 역할)
컨테이너 이름 → IP    예: elastic → 172.18.0.2 자동 매핑
Kibana에서 http://elastic817:9200 접근 가능   도커 DNS가 이름을 IP로 변환해줌


 
 

 

도커에서 --network를 사용하면 Docker가 자체 DNS 서버를 제공하고, 그 덕분에 컨테이너 이름만으로 서로 통신할 수 있게 됩니다.


🧠 요약하면 이렇게 됩니다:

기능설명
Docker 네트워크 생성 (bridge 또는 사용자 정의) 컨테이너들끼리 같은 네트워크 안에서 통신 가능
Docker 내부 DNS 컨테이너 이름으로 IP 자동 해석 (DNS 제공자 역할)
컨테이너 이름 → IP 예: elastic → 172.18.0.2 자동 매핑
Kibana에서 http://elastic:9200 접근 가능 도커 DNS가 이름을 IP로 변환해줌
 

✅ 예제 흐름

  1. 사용자 정의 네트워크 생성
  2. bash
    CopyEdit
    docker network create elastic-net
  3. Elasticsearch 실행 (이름: elastic)
  4. bash
    CopyEdit
    docker run -d --name elastic --network elastic-net \ -e "discovery.type=single-node" \ -e "xpack.security.enabled=false" \ docker.elastic.co/elasticsearch/elasticsearch:8.17.4
  5. Kibana 실행 (같은 네트워크에 있음)
  6. bash
    CopyEdit
    docker run -d --name kibana --network elastic-net \ -e "ELASTICSEARCH_HOSTS=http://elastic:9200" \ -p 5601:5601 \ docker.elastic.co/kibana/kibana:8.17.4

✅ 여기서 중요한 점:

  • Kibana가 elastic이라는 이름으로 Elasticsearch를 찾을 수 있는 이유
    → 같은 Docker 네트워크에 있어서
    → Docker DNS가 작동하기 때문입니다.

🔍 컨테이너 내부에서 확인도 가능해요

bash
CopyEdit
docker exec -it kibana ping elastic

또는

bash
CopyEdit
docker exec -it kibana getent hosts elastic

→ 172.x.x.x elastic 같이 나오면 Docker DNS가 이름을 해석한 겁니다.


💡 실제 DNS 서버가 있냐?

네. Docker는 각 사용자 정의 네트워크마다 내부 DNS 서비스를 제공합니다.

도커가 자동으로 /etc/resolv.conf 를 설정해서 127.0.0.11 같은 도커 DNS 서버로 설정합니다.


🔐 추가 보너스 팁

  • 기본 bridge 네트워크는 이름 해석이 제한됩니다.
  • 사용자 정의 네트워크를 생성해야 이름 기반 DNS 해석이 제대로 작동합니다.
728x90
반응형

'Infra > ElasticSearch' 카테고리의 다른 글

도커로 Metricbeat 설치하는 법  (0) 2025.06.28
elasticsearch 기본 명령어.  (3) 2025.06.26
Docker 에서 ElasticSearch 설치하기 8.0.0  (0) 2025.06.09
ES 설치확인  (0) 2023.10.31
용어 정리  (0) 2023.10.31

댓글