지난주 인프라팀이 사내 DNS 서버를 새 장비로 옮기면서 주소가 10.0.0.2에서 10.0.0.12로 바뀌었고, 옛 서버는 어제 전원을 내렸습니다. 오늘 아침부터 빌드 서버에서 도는 컨테이너들이 사내 저장소(git.internal)와 API(api.internal) 이름을 풀지 못해 빌드가 모두 실패합니다. 같은 서버의 호스트에서 nslookup 을 하면 잘 풀립니다. 담당자는 Docker 네트워크가 깨졌다며 Docker를 재설치하려고 합니다. 이 빌드 서버는 몇 년 전에 세팅된 그대로 운영돼 왔습니다.
호스트에서는 되는데 Docker 컨테이너 안에서만 사내 DNS 조회 실패
지난주 인프라팀이 사내 DNS 서버를 새 장비로 옮기면서 주소가 10.0.0.2에서 10.0.0.12로 바뀌었고, 옛 서버는 어제 전원을 내렸습니다.
시나리오
단서
$ resolvectl status | grep 'DNS Servers' DNS Servers: 10.0.0.12 $ docker exec builder cat /etc/resolv.conf nameserver 10.0.0.2 $ docker exec builder nslookup api.internal ;; connection timed out; no servers could be reached $ docker exec builder nslookup api.internal 10.0.0.12 Name: api.internal Address: 10.20.1.15
{
"dns": ["10.0.0.2"],
"log-driver": "json-file"
}과제 원인을 좁히고, 서비스를 되살리는 순서(검증 포함)와 재발 방지책을 적어 보세요.
구독하면 이어서 볼 수 있어요
이 문제의 전체 시나리오와 점검 체크리스트, 복구 순서, 모범 풀이는 Pro 구독에서 열립니다.
먼저 볼 것
- 호스트와 컨테이너가 쓰는 DNS 서버가 같은지
- 네트워크 장애와 이름 해석 설정 문제 구분하기
점검 체크리스트
- 컨테이너 안 /etc/resolv.conf 의 nameserver
- 새 DNS 서버를 직접 지정해 조회해 보기
- Docker 데몬 설정(daemon.json)의 dns 항목
복구와 재발 방지
같이 보면 좋은 질문
현장에서 본 비슷한 케이스
0/10