Làm cách nào để định cấu hình máy chủ DNS tùy chỉnh với Docker?


8

Tôi cần thêm một vài dòng để /etc/hostsứng dụng web của mình hoạt động bên trong bộ chứa Docker.

Docker /etc/hostslà chỉ đọc.

Tôi đang cố gắng sử dụng dnsmasq:

TỪ Ubuntu: 14.04
# ...
CHẠY apt-get install -y -q dnsmasq
RUN echo 'list-address = 127.0.0.1' >> /etc/dnsmasq.conf
RUN echo 'decv-file = / etc / olvev.dnsmasq.conf' >> /etc/dnsmasq.conf
RUN echo 'conf-dir = / etc / dnsmasq.d' >> /etc/dnsmasq.conf
RUN echo 'user = root' >> /etc/dnsmasq.conf
RUN echo 'máy chủ tên 8.8.8.8' >> /etc/resolv.dnsmasq.conf
RUN echo 'máy chủ tên 8.8.4.4' >> /etc/resolv.dnsmasq.conf
RUN echo 'address = "/ mydomain / 127.0.6.1"' >> /etc/dnsmasq.d/0hosts
Dịch vụ CHẠY dnsmasq bắt đầu

Tuy nhiên, tôi không thể để Docker sử dụng máy chủ DNS của mình:

$ docker --dns = 127.0.0.1 chạy mèo / container của tôi /etc/resolv.conf
máy chủ tên 8.8.8.8
máy chủ tên 8.8.4.4

Tôi đang thiếu gì?

Cấu hình:

  • HĐH X 10.9.4
  • Docker phiên bản 1.1.0, bản dựng 79812e3
  • boot2docker Phiên bản máy khách: v1.1.0, Git commit: 7e20d36

Câu trả lời:


9

--dnslàm việc cho docker runnhưng không cho docker build. Vì vậy, giải pháp tốt hơn là điều chỉnh các cài đặt trên toàn cầu với

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

Trên Ubuntu tôi đặt dòng này vào /etc/default/docker


Lưu ý rằng /etc/default/dockertệp không được sử dụng khi docker daemon được thực thi, bạn nên sửa đổi daemon.jsontệp cấu hình. Xem docs.docker.com/engine/reference/commandline/dockerd/ Kẻ
Davide Icardi

6

Điều tôi thiếu là tôi đã làm rối tung thứ tự của các tùy chọn và đối số. Nếu tôi chỉ định --dnssau run, mọi thứ hoạt động tốt.

$ docker chạy --dns = 127.0.0.1 mèo / container của tôi /etc/resolv.conf
máy chủ tên 127.0.0.1

Doh.


Tuy nhiên, điều này không hoạt động - dnsmasq ngừng hoạt động ...
Alexander Gladysh

Bạn cũng có thể sử dụng --dnstùy chọn nhiều hơn một lần. Ví dụdocker run --dns 8.8.8.8 --dns 127.0.0.1 my/container
Bruno Bieri
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.