No description
Find a file
2026-07-16 13:52:33 +09:00
.gitignore Initial commit: dnsmasq Docker environment 2026-01-19 16:54:03 +09:00
dnsmasq.conf DHCPにセカンダリDNSを追加 2026-07-16 13:52:33 +09:00
dnsmasq.leases DHCPにセカンダリDNSを追加 2026-07-16 13:52:33 +09:00
docker-compose.yml ヘルスチェック追加 2026-01-26 09:03:53 +09:00
hosts Initial commit: dnsmasq Docker environment 2026-01-19 16:54:03 +09:00
README.md Initial commit: dnsmasq Docker environment 2026-01-19 16:54:03 +09:00

dnsmasq Docker環境

dnsmasqをDockerコンテナとして実行する環境です。DNSキャッシュサーバーおよびローカルDNSサーバーとして機能します。

機能

  • DNSキャッシュサーバー: 上位DNSへの問い合わせをキャッシュして高速化
  • カスタムDNSエントリ: ローカルネットワーク内のホスト名解決
  • Web UI: ブラウザから設定とログを確認可能ポート8080
  • 軽量: 軽量なdnsmasqイメージを使用

構成

  • docker-compose.yml: Dockerサービス定義
  • dnsmasq.conf: dnsmasqの設定ファイル
  • hosts: カスタムDNSエントリ
  • .env: Web UI認証情報Gitにはコミットしない

使い方

1. 環境変数の設定

.envファイルを編集してWeb UIの認証情報を変更してください

HTTP_USER=your_username
HTTP_PASS=your_secure_password

2. カスタムDNSエントリの追加

hostsファイルにカスタムDNSエントリを追加

192.168.1.10 myserver.local
192.168.1.20 fileserver.local

3. コンテナの起動

docker-compose up -d

4. ログの確認

docker-compose logs -f dnsmasq

5. Web UIへのアクセス

ブラウザで http://localhost:8080 にアクセスし、.envで設定した認証情報でログインしてください。

DNS設定

Linuxの場合

/etc/resolv.confを編集(またはsystemd-resolvedを使用している場合は適宜設定):

nameserver 127.0.0.1

Dockerコンテナから使用する場合

docker-compose.ymlに以下を追加:

services:
  your-service:
    dns:
      - <dnsmasq-container-ip>

設定のカスタマイズ

dnsmasq.confを編集して、以下の設定をカスタマイズできます:

  • 上位DNSサーバー
  • キャッシュサイズ
  • ローカルドメイン
  • DHCP設定必要な場合

設定変更後は、コンテナを再起動してください:

docker-compose restart

トラブルシューティング

ポート53が既に使用されている

他のDNSサービスがポート53を使用している可能性があります。以下を確認

sudo lsof -i :53
sudo systemctl status systemd-resolved

systemd-resolvedが動作している場合、停止するか、dnsmasqのポートを変更してください。

DNSが解決されない

  1. コンテナが正常に起動しているか確認
  2. ログでエラーを確認
  3. dnsmasq.confの設定を確認

セキュリティ

  • .envファイルはGitにコミットされません.gitignoreに含まれています)
  • Web UIはデフォルトでポート8080でlisten必要に応じて外部アクセスを制限してください
  • 本番環境では、強力なパスワードを設定してください

ライセンス

このプロジェクトはMITライセンスの下で公開されています。