🐈

docker composeでdnsを指定する

2024/11/07に公開

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