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로 변환해줌 |
✅ 예제 흐름
- 사용자 정의 네트워크 생성
-
bashCopyEditdocker network create elastic-net
- Elasticsearch 실행 (이름: elastic)
-
bashCopyEditdocker 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
- Kibana 실행 (같은 네트워크에 있음)
-
bashCopyEditdocker 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 |
댓글