動かざることバグの如し

近づきたいよ 君の理想に

Docker&dnsmasqでローカルにオレオレDNSサーバーを構築する

Macで開発する際に/etc/hostsを書き換えて作業することが結構おおい。

が、そのたびにhosts書き換えるのもだるいし、/etc/hostsの悪いところはワイルドカードに対応していないところである。。

ってことで、今回はMacDNSサーバーを入れてみることにした。けど環境は汚したくないのでDockerで

環境

  • Mac OS
  • docker-compose version 1.21.2

インストール

以下を適当な場所でgit cloneする

git clone https://github.com/thr3a/oreore-dns-server.git
cd oreore-dns-server

で、起動

docker-compose up

するともうDNSサーバーが起動した。一発

あとはこの辺のサイトを参考にしてPCのDNSサーバーを「127.0.0.1」に変更する。

確認

以下のようにコマンドを叩くとlocal.example.com127.0.0.1で返ってくるはず

$nslookup local.example.com
Server:     127.0.0.1
Address:    127.0.0.1#53

Name:   local.example.com
Address: 127.0.0.1

以下、Q&A的な

バックグラウンドで動かしたい

docker-compose up -d

で起動

hostsを追加したい

docker-compose.ymlのextra_hostsに足していく。extra_hostsはdocker-compose側の仕様で構文は/etc/hostsと同じ

ワイルドカードでホストファイルを書きたい

dnsmasq.confのaddress 項目を増やす

すでに

address=/local.turai.work/127.0.0.1

と追加されているが、これによって「local.turai.work」も「aaa.local.turai.work」も全部127.0.0.1になる。

上位のDNSサーバーを変えたい

dnsmasq.confのserverを書き換える。