LoginSignup
2
3

More than 1 year has passed since last update.

[02] docker-compose を使って即座に dnsmasq を立てる (解説)

Last updated at Posted at 2021-08-26
本シリーズのトップページ
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

以上.

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3