Macで開発する際に/etc/hostsを書き換えて作業することが結構おおい。
が、そのたびにhosts書き換えるのもだるいし、/etc/hostsの悪いところはワイルドカードに対応していないところである。。
ってことで、今回はMacにDNSサーバーを入れてみることにした。けど環境は汚したくないので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.comが127.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
を書き換える。