Docker DNS
목차
Docker 컨테이너는 IP를 사용자 정의 네트워크의 컨테이너 이름으로 자동 확인하는 DNS서버가 호스트에 생성된다 (127.0.0.11)
- Docker의 기본 docker0 bridge driver에는 DNS가 포함되어 있지 않음 → Docker0 bridge driver는 작동 안함
동일 네트워크 alias 할당을 통해 하나의 타겟 그룹을 만들어 요청에 Round Robin방식으로 응답함다.
컨테이너 생성시 호스트 시스템에서 다음 세파일을 복사하여 컨테이너 내부에 적용하여 컨테이너 간에 이름으로 찾기가 가능해진다.
- /etc/hostname
- /etc/hosts
- /etc/resolv.conf
libnetwork는 핵심 네트워킹 서비스 검색 기능 제공하며 모든 컨테이너가 이름으로 서로를 찾을 수 있게 한다. ( –name or –net-alias 사용 시 DNS에 등록)
docker network create es-net확인
route
컨테이너 생성
docker run -d -m 1g --cpus=2 --name=es1 --net=es-net --net-alias=esnet-tg -p 9201:9200 -p 9301:9300 -e "discovery.type=single-node" elasticsearch:7.17.10
docker run -d -m 1g --cpus=2 --name=es2 --net=es-net --net-alias=esnet-tg -p 9202:9200 -p 9302:9300 -e "discovery.type=single-node" elasticsearch:7.17.10
docker run -d -m 1g --cpus=2 --name=es3 --net=es-net --net-alias=esnet-tg -p 9203:9200 -p 9303:9300 -e "discovery.type=single-node" elasticsearch:7.17.10확인
docker ps | grep es
docker network inspect es-net
docker run -it --rm --name=request-container --net=es-net busybox nslookup esnet-tg내부내트워크 확인
docker run -it --rm --name=request-container --net=es-net centos:8 bash
curl -s esnet-tg:9200