- 도커에도 DNS 서비스가 내장돼 있다.
- 컨테이너 이름을 도메인 삼아 조회하면 해당 컨테이너의 IP 주소를 찾아 준다.
001) ➜ docker-compose up -d --scale iotd=3
002) [+] Running 5/5
003) ✔ Container image-of-the-day-iotd-3 Started 0.8s
004) ✔ Container image-of-the-day-accesslog-1 Started 0.5s
005) ✔ Container image-of-the-day-iotd-1 Started 0.5s
006) ✔ Container image-of-the-day-iotd-2 Started 1.1s
007) ✔ Container image-of-the-day-image-gallery-1 Started
008) ➜
009) ➜ docker exec -it image-of-the-day-image-gallery-1 sh
010) ➜ /web nslookup accesslog
011) nslookup: can't resolve '(null)': Name does not resolve
012)
013) Name: accesslog
014) Address 1: 172.22.0.2 image-of-the-day-accesslog-1.nat
- 001~007: 애플리케이션이 정의된 상태대로 실행, iotd 서비스의 컨테이너를 3개로 늘림
- 009: 컨네이너에 대화식 셸을 실행
- 010~014: 도메인을 DNS에 조회. accesslog 서비스를 DNS에 조회해 보니 해당 컨테이너의 IP주소가 조회됐다.
컨테이너 삭제후 재실행 및 DNS 조회
001) ➜ docker container rm -f image-of-the-day-accesslog-1
002) image-of-the-day-accesslog-1
003) ➜
004) ➜ docker-compose up -d --scale iotd=3
005) [+] Running 5/5
006) ✔ Container image-of-the-day-accesslog-1 Started 0.3s
007) ✔ Container image-of-the-day-iotd-1 Running 0.0s
008) ✔ Container image-of-the-day-iotd-3 Running 0.0s
009) ✔ Container image-of-the-day-iotd-2 Running 0.0s
010) ✔ Container image-of-the-day-image-gallery-1 Running 0.0s
011) ➜
012) ➜ docker exec -it image-of-the-day-image-gallery-1 sh
013) ➜ /web nslookup accesslog
014) nslookup: can't resolve '(null)': Name does not resolve
015)
016) Name: accesslog
017) Address 1: 172.22.0.2 image-of-the-day-accesslog-1.nat
018)
019) ➜ /web nslookup iotd
020) nslookup: can't resolve '(null)': Name does not resolve
021)
022) Name: iotd
023) Address 1: 172.22.0.5 image-of-the-day-iotd-2.nat
024) Address 2: 172.22.0.4 image-of-the-day-iotd-3.nat
025) Address 3: 172.22.0.3 image-of-the-day-iotd-1.nat
- 001: 컨테이너를 삭제하면 애플리케이션의 상태가 컴포즈 파일에 정의된 것과 달라져 컴포즈는 새롭게 컨테이너를 만든다.
- 016~017: DNS 조회 결과를 보면 기존 컨테이너의 IP를 그대로 유지했다. 삭제되면서 부여됐던 IP 주소도 재사용이 가능해졌기 때문
- 019~025: iotd 서비스는 세 개의 컨테이너로 동작하므로 IP주소도 세 개다.