Docker로 사용자 지정 DNS 서버를 구성하는 방법은 무엇입니까? ‘resolv-file = / etc /

/etc/hosts웹 응용 프로그램이 Docker 컨테이너 내에서 작동 하려면 몇 줄을 추가해야합니다 .

도커 /etc/hosts는 읽기 전용입니다.

dnsmasq를 사용하려고합니다.

우분투에서 : 14.04
# ...
실행 apt-get 설치 -y -q dnsmasq
에코 실행 'listen-address = 127.0.0.1'>> /etc/dnsmasq.conf
에코 실행 'resolv-file = / etc / resolv.dnsmasq.conf'>> /etc/dnsmasq.conf
에코 실행 'conf-dir = / etc / dnsmasq.d'>> /etc/dnsmasq.conf
echo 'user = root'>> /etc/dnsmasq.conf 실행
에코 실행 'nameserver 8.8.8.8'>> /etc/resolv.dnsmasq.conf
에코 실행 'nameserver 8.8.4.4'>> /etc/resolv.dnsmasq.conf
에코 실행 'address = "/ mydomain / 127.0.6.1"'>> /etc/dnsmasq.d/0hosts
RUN 서비스 dnsmasq 시작

그러나 Docker가 DNS 서버를 사용할 수 없습니다.

$ docker --dns = 127.0.0.1 my / container cat /etc/resolv.conf를 실행하십시오.
네임 서버 8.8.8.8
네임 서버 8.8.4.4

내가 무엇을 놓치고 있습니까?

구성 :

  • OS X 10.9.4
  • Docker 버전 1.1.0, 빌드 79812e3
  • boot2docker 클라이언트 버전 : v1.1.0, Git 커밋 : 7e20d36


답변

--dns작동 docker run하지만 작동 하지 않습니다 docker build. 더 나은 해결책은 설정을 전체적으로 조정하는 것입니다.

DOCKER_OPTS="--dns=my-private-dns-server-ip --dns=8.8.8.8"

우분투에서 나는이 라인을 넣어 /etc/default/docker


답변

내가 놓친 것은 옵션과 인수의 순서를 엉망으로 만들었다는 것입니다. --dnsafter를 지정 run하면 모든 것이 잘 작동합니다.

$ docker run --dns = 127.0.0.1 my / container cat /etc/resolv.conf
네임 서버 127.0.0.1