DockerのIpv6を有効にする

Raspberry PiにAdGuard Homeの導入を導入したが、IPv6のDNSを利用できなかったのでDockerのIPv6サポートを有効にする。

IPv6サポートの有効化

ほとんど公式通り

/etc/docker/daemon.json に下記の内容を追加する。daemon.jsonがない場合は新規作成で大丈夫です。

{
  "ipv6": true,
  "fixed-cidr-v6": "2001:db8:2::/64"
}

Dockerを再起動する。

$ systemctl reload docker.service

ip aでIPv6アドレスが降られているか確認できます。表示されなければ再起動したらよさそう。

4: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
    link/ether be:bb:67:84:c8:22 brd ff:ff:ff:ff:ff:ff
    inet 172.18.0.1/16 brd 172.18.255.255 scope global docker0
       valid_lft forever preferred_lft forever
    inet6 2001:db8:2::1/64 scope global nodad
       valid_lft forever preferred_lft forever

使い方

IPv6が使えるようになったのでcompose.yamlnetworksで明示的に宣言します。
下記のように設定してコンテナを落として作り直したらIPv6が使えるようになります。

services:
  adgaurd:
    container_name: "adguard-home"
    image: adguard/adguardhome:v0.107.61
    networks:
      - adguard
networks:
  adguard:
    enable_ipv6: true