#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? Я в значительной степени новичок!