Контейнер Docker для изменения DNS-сервера по умолчанию

#docker #dnsmasq

#docker #dnsmasq

Вопрос:

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

 >>  host facebook.com 
  

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

 >> host facebook.com _myserverIP_
  

Итак, я осмотрелся и нашел несколько изображений на Docker hub и на их основе создал этот очень простой файл 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. Какой результат docker ps -a ?

2. опубликуйте вывод docker logs dns3

3.Вывод docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 5e729e49ca53 dns "dnsmasq" 4 seconds ago Exited (0) 3 seconds ago dns3

4. Для docker logs dns3 I нет выходных данных.

5. Попробуйте docker run без -d посмотреть, что происходит. т.Е. docker run --name dns3 -p 53:53/udp --cap-add=NET_ADMIN dns

Ответ №1:

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

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

Комментарии:

1. хорошо, я добавил resolv.conf и поместил, nameserver _myserverIP и я помещаю COPY resolv.conf /etc/resolv.conf в Dockerfile. Но, похоже, ничего не меняется. Можете ли вы, пожалуйста, сказать мне, почему / как монтировать resolv.conf? Я в значительной степени новичок!