I’m currently trying to install Docker on my old Raspberry Pi (3 Model B+) to host some personal projects. When I run docker run hello-world
, I get:
Unable to find image 'hello-world:latest' locally
docker: Error response from daemon: Get "https://registry-1.docker.io/v2/library/hello-world/manifests/sha256:ec153840d1e635ac434fab5e377081f17e0e15afab27beb3f726c3265039cfff": dial tcp [2600:1f18:2148:bc00:eff:d3ae:b836:fa07]:443: connect: network is unreachable
My Internet connection does not support IPv6 at all, which would explain why this error occurs. But how do I force docker-pull
to only use IPv4?
Well crap. Do you have no ipv6 address now in
ip addr
?Guess I gave Docker too much benefit of the doubt and assumed it should failover to v4 once v6 was disabled. Bad assumption on my part.
Could it be a DNS problem? If you
dig registry-1.docker.io +short
does it return an ipv4 or v6 address?It looks like there have been sporadic reports of problems from people since last year.
Try adding
{"ipv6": false}
to your/etc/docker/daemon.json
file (create it if it doesnt exist), then restart docker withsudo systemctl restart docker
- this forces docker to use IPv4 only.This flag seems to only disable ipv6 on the default Docker bridge network, not daemon-wide. At least per this discussion.
Just comparing it by eye, there’s no change.
zag@raspberrypi:~ $ man dig No manual entry for dig zag@raspberrypi:~ $ which dig zag@raspberrypi:~ $ sudo apt install dig Reading package lists... Done Building dependency tree... Done Reading state information... Done E: Unable to locate package dig
But if I ping it
It’s in the dnsutils package.