이 문제는 XY 문제 일 수 있으므로이 문제를 해결하는 가장 좋은 방법을 모르기 때문에 질문의 컨텍스트를 포함하겠습니다.docker-compose에서 DNS 컨테이너를 설정하려면 어떻게해야합니까?
AWS에 kubernetes 환경을 설정하여 nginx 컨테이너와 백엔드 서비스 (두 가지를 SvcA라고 부름)가 있습니다. 백엔드 서비스가오고 갈 수 있기 때문에, 내의 nginx의 설정에서 나는처럼 보이는 무언가가 :이 설정이는 Kubernetes에 잘 작동
resolver kube-dns.kube-system.svc.cluster.local valid=60s ipv6=off;
server {
# stuff
location/{
set $backend "SvcA.default.svc.cluster.local:8000";
proxy_pass http://$backend;
}
}
을,하지만 난 길가에 (거의) 동일한 설정을 가진이 원하는 테스트/개발을위한 나의 로컬 머신. 그러나 kubernetes 사용의 모든 오버 헤드가 없다. 내가하고 싶은 일은이 두 컨테이너 (nginx, SvcA)를 도커 작성 파일에 집어 넣고 그런 식으로 작업하게하는 것입니다. 내가 겪었던 문제는 nginx의 해석자가 kubernetes에 대한 URL이되도록 하드 코딩되어 있고, 생각할 수있는 해결책은 DNS 컨테이너 인 것입니다. 유일한 항목은 " SvcA.default.svc.cluster.local "을 docker-compose라는 이름으로 할당하십시오.
이 방법이 문제를 해결하는 가장 좋은 방법인지 확신 할 수 없지만 DNS 구성을 설정하기에 충분하지 않습니다. 이것이 내 문제에 대한 최선의 해결책인가? 그렇다면 DNS 서버를 어떻게 구성 할 것인가?
이야기 할 수 있어야한다 https://docs.docker.com/compose/compose-file/
:
당신이 여기에 필요한 모든 정보를 찾을 수 있어야합니다 경우
더 간단한 방법. 그것은 나를 거기에서 가장 길게 만든다. "127.0.0.11"이 항상 내부 네임 서버의 IP인지 여부를 알고 있습니까? (내가 nginx 구성에서 해결사에 대한 "extra_hosts"항목을 만들어야하고 내부 DNS의 IP를 설정하는 방법에 대한 문서를 찾을 수 없습니다) – Richard나는 docker-compose에서 다음 매개 변수를 사용할 수 있다고 생각합니다. .yml https://docs.docker.com/v1.11/compose/compose-file/#dns –