System
I have a Raspberry Pi 3 Model B Plus Rev 1.3, running Debian GNU/Linux 12 (bookworm). uname -a prints:
Linux raspberrypi 6.12.25+rpt-rpi-v8 #1 SMP PREEMPT Debian 1:6.12.25-1+rpt1 (2025-04-30) aarch64 GNU/Linux
It is running Docker version 28.5.1, build e180ab8.
Problem
Currently, on my Pi, I am unable to pull…pretty much anything. docker pull hello-world gives this error:
Error response from daemon: Get “[https] registry-1 [dot] docker [dot] io/v2/library/hello-world/manifests/sha256:6dc565aa630927052111f823c303948cf83670a3903ffa3849f1488ab517f891”: dial tcp [2600:1f18:2148:bc00:3649:ffc9:b91:577a]:443: connect: network is unreachable
And attempting to pull an image I built from ghcr.io gives:
Error response from daemon: Get “[https] ghcr [dot] io/v2/”: dial tcp: lookup ghcr.io on 10.0.2.3:53: no such host
Both of these work totally fine if I pull the same images from Docker in Powershell on my Windows desktop.
Attempted fixes
It’s not a general connectivity problem: ping ghcr.io works fine, and curl -I [https] registry-1 [dot] docker [dot] io/v2/ gives a 401.
I created /etc/docker/daemon.json and included "ipv6": "false". This did not help.
I also added the following to /etc/sysctl.conf:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
Which also didn’t work.
I’ve also tried adding 9.9.9.9 and 149.112.112.112 (quad9 and quad9’s alternate IP) to daemon.json, as well as as nameservers (after my router) in /etc/resolv.conf.
I don’t know why in the first case, Docker is trying to use an IPv6 address when my network does not support IPv6 and I have done everything I can find to tell it not to. I also don’t know why it’s attempting to use 10.0.2.3 in the second case, I don’t know what machine that is supposed to refer to.