Alphine(docker)でdnsmasqを操作する方法は?

Alphine(docker)でdnsmasqを操作する方法は?

DebianベースのLinuxでは、dnsmasqはnameserversinを/etc/resolv.conf次のよう127.0.0.1に置き換えることで動作します("ワイヤレスエンジニア用のLinux:DNSキャッシュにdnsmasqを使用する方法")。

しかし、私はAlpine(そしてAlpineベースのドッカー)ではそのようには機能しないことがわかりました。 dnsmasqが起動すると、/etc/resolv.conf変更されていません。したがって、dnsmasq を起動すると、DNS 解像度の点で違いはありません。 dnsmasqを起動するためのスクリプトを作成しましたが、厄介な感じがしました。

   cp /etc/resolv.conf /etc/resolv.dnsmasq
   sed -i 's/^nameserver.*/nameserver 127.0.0.1/' /etc/resolv.conf
   dnsmasq -r /etc/resolv.dnsmasq

それでは、Alpineでdnsmasqが機能するようにするより良い(「正しい」)方法はありますか?

答え1

Debian では、init スクリプトが resolv.conf の更新を担当しているようです。https://thekelleys.org.uk/gitweb/?p=dnsmasq.git;a=tree;f=debian;h=7539dd72f8ea2d8d4b60d926ffa163956e3624a5;hb=HEAD。 resolvconf、systemd.serviceなどを確認してください。

アルパインにも同様の加工方式があるかどうかはわかりません。私の考えでは、initスクリプトを使用してalpineでdnsmasqを実行する必要があると思いますrc-service dnsmasq start。ここからスクリプトを読むことができます。https://git.alpinelinux.org/aports/tree/main/dnsmasq/dnsmasq.initd(またはローカル)。に関する貴重な情報があります。https://wiki.alpinelinux.org/wiki/Main_Page

DNSはDHCPクライアントによって変更される可能性があります。

これが役に立つことを願っています。

関連情報