概要
Dockerコンテナの/etc/resolv.conf
はDockerホストのファイルがそのまま引き継がれる。
DockerホストとDockerコンテナで名前解決の設定を変更したい場合はdocker runのときに--dns
オプションを指定することで個別に変更が出来る。
とはいえ毎回docker runの度にオプション指定は面倒、しかしDockerホストの/etc/resolv.conf
は変更したくない。。。
そういった場合は/etc/docker/daemon.json
に事前に設定を入れておくことで
Dockerホストの/etc/resolv.conf
を変更することなくそして--dns
オプションを指定する必要がなくなる。
設定
/etc/docker/daemon.json
{ "dns": [ "10.0.0.1", "10.0.0.2", "10.0.0.3" ], "dns-opts": [ "timeout:1" ] }
と書いてデーモンを再起動すると
各コンテナの/etc/resolv.confのデフォルトが
search example.com nameserver 10.0.0.1 nameserver 10.0.0.2 nameserver 10.0.0.3 options timeout:1
になる。
search example.com
は指定していないのでデフォルトのDockerホストの/etc/resolv.conf
から引き継がれてきた。