Docker-контейнер для изменения DNS-сервера по умолчанию - PullRequest
1 голос
/ 18 марта 2019

Я учусь работать с контейнерами Docker и пробую то, что, по моему мнению, было бы простым упражнением, но столкнулось с проблемами. Я хочу использовать контейнер для изменения DNS-сервера по умолчанию, используемого моей машиной.
Поэтому, когда я говорю

>>  host facebook.com 

результат должен быть таким же, как

>> host facebook.com _myserverIP_

Итак, я осмотрелся и нашел несколько изображений на Docker-хабе, на основе которых был сделан этот очень простой Dockerfile:

FROM alpine:latest
RUN apk --no-cache add dnsmasq 
COPY dnsmasq.conf /etc/dsnmasq.conf
EXPOSE 53/tcp 53/udp
VOLUME ["/etc/dnsmasq"]
CMD ["dnsmasq"]

в dnsmasq.conf, я положил:

log-queries
no-resolv
server= _myserverIP_

Я строю и запускаю:

docker build -t dns .
docker run --name dns3 -d -p 53:53/udp --cap-add=NET_ADMIN dns

это дает мне 2c3f046593c5d6e664d202e78d92172c75f71b95c45a9ea307af49bd1e2d5125

но когда я пытаюсь увидеть, какие контейнеры работают, я вижу, что этот контейнер даже не работает, поэтому я не могу сделать следующий шаг, чтобы проверить, работает ли он.

Я явно упускаю что-то простое, но не могу понять, что.

1 Ответ

1 голос
/ 18 марта 2019

Ваша система будет искать в /etc/resolv.conf, чтобы определить, какие DNS-серверы использовать.Используйте это руководство, чтобы определить, как dnsmasq использует /etc/resolv.conf https://wiki.debian.org/HowTo/dnsmasq

Я подозреваю, что вам также потребуется смонтировать resolv.conf.

...