📌
Raspberry PiにDNSを設定した。
Nugetサーバを構築するにあたってどうしてもサブドメインが欲しかったので。
ホスト側でDNSを建てるとコンテナ内でホスト名を名前解決しようとしたときにループバックアドレスになって接続出来ない問題があったのでDockerで起動するように変更
ルータの設定(1)
RaspberryPiにDHCPで固定IPを振るように変更
dnsmasq.conf
no-resolv
server=127.0.0.1
server=8.8.8.8
server=8.8.4.4
ローカルに振られたDNSリクエストを解決できない場合はGoogleDNSに飛ばすように設定
address=/.<ローカルのドメイン>.lan/<固定したIP>
Windowsが.localはmDNSで解決しようとするので.lanを使用
Dockerfile
Dockerfile
FROM alpine:latest
RUN apk add --no-cache dnsmasq
COPY dnsmasq.conf /etc/dnsmasq.conf
CMD ["dnsmasq", "-k"]
composeに組み込む予定なのでExposeはここでは無し
docker build -t dnsmasq .
docker-compose.yml
docker-compose.yml
services:
dnsmasq:
image: dnsmasq
restart: unless-stopped
environment:
- TZ=Asia/Tokyo
ports:
- "53:53/tcp"
- "53:53/udp"
volumes:
- ./dnsmasq/dnsmasq.conf:/etc/dnsmasq.conf
止まったらローカルネットワーク内の全てのマシンに影響が出ちゃうのでrestart: unless-stopped
ローカルサービスの終了とコンテナの起動
sudo systemctl stop dnsmasq
docker compose up -d
ルータの設定(2)
固定IPにDNSが向くように変更
Discussion