🐈
docker composeでdnsを指定する
TailscaleとCloudflaredを同時に使用したときに問題が出たので、メモ。
概要
Tailscaleをインストールした環境でDockerを使用する際、DNS解決で問題が発生することがあります。これは、Tailscaleがresolv.confを書き換えることで、Docker環境のDNS設定にも影響を及ぼすためです。
具体的には、CloudflaredをDocker Composeで使用した際にDNS解決エラーが発生しました。この問題を解決するには、Docker Composeファイル内で明示的にDNSを指定することができます。
解決策
以下のようにdnsオプションを追加することで、特定のコンテナに対してカスタムDNSサーバーを設定できます:
services:
tunnel:
restart: always
image: cloudflare/cloudflared:latest
dns:
- 1.1.1.1
command: tunnel --no-autoupdate run
environment:
- TUNNEL_TOKEN=
これにより、TailscaleのDNS設定に影響されることなく、指定したDNSサーバー(この例では Cloudflare の 1.1.1.1)を使用してDNS解決を行うことができます。
Discussion