andreybold
@andreybold

Как настроить DNS-сервер для хоста работающий в докере?

Доброго времени суток.
Сейчас на компьютере установлен dnsmasq в режиме DNS-сервера. В конфиге пока только одна строчка:
address=/loc/127.0.0.1

Т.е. все запросы по адресам *.loc будут перенаправляться на локальную машину.
Появилась необходимость перенести сервер в контейнер докера, в docker-compose.yml настроил таким образом:
dns:
    image: andyshinn/dnsmasq:2.78
    volumes:
      - ${PATH_TO_CONFIGS}/dnsmasq/dnsmasq.conf:/etc/dnsmasq.conf
    cap_add:
      - NET_ADMIN
    ports:
      - 53:53/tcp
      - 53:53/udp

И всё бы ничего, но на хосте (Linux Mint 18) этот порт занят по дефолту:
$ sudo netstat -pna | grep :53
tcp        0      0 127.0.1.1:53            0.0.0.0:*               LISTEN     2064/dnsmasq
udp        0      0 0.0.0.0:5353            0.0.0.0:*                          1275/avahi-daemon:
udp        0      0 127.0.1.1:53            0.0.0.0:*                          2064/dnsmasq
udp6       0      0 :::5353                 :::*                               1275/avahi-daemon:

И как я выяснил, 2064/dnsmasq это network-manager.
Вопрос собственно в том, как сделать так чтобы порты нормально прописались. Или, если есть такая возможность, подскажите как можно настроить докер, чтобы он взял на себя задачу контейнера с dnsmasq.

P.S. с докером я пока осваиваюсь, поэтому могу не знать каких-то тонкостей в его работе и настройке, за что заранее прошу простить.
  • Вопрос задан
  • 699 просмотров
Пригласить эксперта
Ответы на вопрос 1
Надо запустить dnsmasq и указать ему статический ip. public port  не указывать, так как он занят.
Можно посмотреть тут пример для compose. linux-notes.org/ispol-zovanie-staticheskogo-ip-adr...
Можно подсеть создать вручную и запустить самому
docker network create some_network
docker run --network some_network --ip 172.19.5.5 --restart=unless-stopped -d dnsmasq

надо учесть маску отсети some_network для параметра ip
Проверяем
dig @172.19.5.5 postgres.my-project.loc
Добавляем наш IP dns сервер в систему.
echo "nameserver 172.19.5.5" | sudo tee --append /etc/resolvconf/resolv.conf.d/tail
sudo resolvconf -u

Взял команды из https://github.com/jderusse/docker-dns-gen#simple-usage
https://askubuntu.com/questions/130452/how-do-i-ad...
Проверяем
dig postgres.my-project.loc
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы