本シリーズのトップページ |
---|
https://qiita.com/robozushi10/items/e2ed733e09c9e39407f2 |
概要
docker-compose を使って即座に dnsmasq を構築する手順を記す.
本項の内容は、前項 の解説である.
参考にした記事
・https://qiita.com/tac0x2a/items/c6306b95dd27703bc975
・https://sites.google.com/site/hollyroyaltea/home/dns/dnsmasq
事前準備するファイル
次の構成でファイルを用意しておく. ファイルの中身については後述する.
.
|-- PV
| `-- etc
| `-- dnsmasq.d
| |-- my.conf ...... dnsmasq コンテナ内の /etc/dnsmasq.conf から読み込まれる
| `-- add_hosts .... 上記 my.conf から読み込まれる
`-- docker-compose.yml
ファイルの中身
docker-compose.yml
重要な点についてはファイル内にコメントを記した.
version: '3'
services:
dnsmasq:
restart: always
image: 4km3/dnsmasq
container_name: mydnsmasq
environment:
TZ: "Asia/Tokyo"
ports:
- "53:53/udp"
- "53:53/tcp"
# PC を DNS に登録したい場合は ./PV/etc/dnsmasq.d/add_hosts を編集する
volumes:
- './PV/etc/dnsmasq.d:/etc/dnsmasq.d'
dns:
# 本ファイルの「dns」に対して、上位の DNSサーバを定義してしまえば、
# PV/etc/dnsmasq.d/my.conf に上位 DNSサーバを定義する手間が省ける.
- 8.8.8.8
- 127.0.0.1
cap_add:
- NET_ADMIN
PV/etc/dnsmasq.d/my.conf
/etc/dnsmasq.d/.
に対して、*.conf
というファイル名で配置しておけば、
設定ファイルとして読み込まれるので、ファイル名は自由である.
設定値については、「/etc/dnsmasq.conf」から必要な設定のみを取り出して再定義しただけである.
# プライベートIPの逆引きは上位DNSに転送しない
bogus-priv
# 名前と IP の管理を、/etc/hosts ではなく /etc/dnsmasq.d/add_hosts に変更する.
# (∵ コンテナ内の /etc/hosts は、ホスト側から容易にマウントできないため)
addn-hosts=/etc/dnsmasq.d/add_hosts 🛑
# 後述の「domain=」で指定されたドメインで補完する.
expand-hosts
# 補完するドメイン. ここでは「mylocal.domain」としているので適宜読み替えること.
domain=mylocal.domain
PV/etc/dnsmasq.d/add_hosts
本ファイルに、PC の IP と マシン名を定義していくことになる.
なお、本ファイルは上記 🛑 によって読み込まれる.
ここでは、IP「10.208.200.123」とマシン名「piyo」を関連付けしている.
10.208.200.123 piyo
運用方法
起動
docker-compose up -d
を実行するのみである
$ docker-compose up -d
起動したら、(コンテナを稼働させた PC で) 次のようにして確認すれば良い.
## dig 解決させたいマシン名 @<dnsmasq コンテナを稼働させているホストのIP>
$ dig piyo @127.0.0.1
$ dig piyo.mylocal.domain @127.0.0.1
IPとマシン名の追加・変更・削除
PV/etc/dnsmasq.d/add_hosts
を編集してから次を実行すれば良い
$ vim PV/etc/dnsmasq.d/add_hosts
(編集する)
$ docker-compose restart
以上.