this post was submitted on 11 Aug 2025
46 points (96.0% liked)

Selfhosted

50533 readers
454 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 2 years ago
MODERATORS
 

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?

you are viewing a single comment's thread
view the rest of the comments
[–] iglou@programming.dev 7 points 5 days ago (1 children)

Looks like your Pi thinks it can use IPv6. Find where, and disable it.

[–] Zagorath@aussie.zone 6 points 5 days ago (1 children)

Yes, that is what I am here seeking help with.

[–] TheKracken@lemmy.world 3 points 5 days ago (1 children)
[–] Zagorath@aussie.zone 1 points 5 days ago (1 children)

Sorry, maybe I should have explained every single step I tried in the body of the original post. I didn't, partly because there were just too many and partly because I forgot which methods I had tried and which pages I had visited. But that page is one I've seen already.

It mentions to "blacklist" the module in a file that doesn't exist. In fact, in a file that's in a directory that doesn't exist, which makes me very sceptical about the later claim that creating that file will fix it. /etc/modules-load.d exists, but not /etc/modules.d. I did already try the final suggestion to add that line to the end of /boot/firmware/cmdline.txt though. No luck.

I think the fact that it's 6 years old is probably a big part of the reason it didn't help. Files and directories have moved around. The suggestions in that post are literally just "do this" without any underlying explanation of what it's doing that could lend to further investigation of the more modern way to do it.

[–] iglou@programming.dev 2 points 4 days ago* (last edited 4 days ago) (1 children)

What version of Pi OS are you running?

(we can move to DMs if you wish, it will be less polluting, or stay in the comment thread if you don't feel safe in DMs)

[–] Zagorath@aussie.zone 1 points 4 days ago* (last edited 4 days ago) (1 children)

I'm happy to keep it public if only for the off chance that if we find a solution it might some day help someone else with the same issue. The thread'll fall down in the rankings naturally over time anyway so I wouldn't worry about polluting anything for people not actively seeking it out.

I'm not 100% sure how to find the OS version, but uname -a outputs [...]6.12.25+rpt-rpi-v8[...]. /etc/os-release contains "Debian GNU/Linux 12 (bookworm)". It should be whatever was latest as of a month or two ago when I installed the OS fresh.

[–] iglou@programming.dev 2 points 4 days ago* (last edited 4 days ago) (1 children)

I have read the rest of the comments to see what you already tried. I was about yo tell you to use sysctl to disable ipv6 but it looks like that is already done.

As a matter of fact, it looks like you have no ipv6 address at all. Which makes me think that your DNS config might be off, as it shouldn't even attempt an ipv6 resolution.

Can you show me the content of /etc/resolv.conf ?

Also install "dig" if you dont have it already and show the output of

dig registry-1.docker.io
[–] Zagorath@aussie.zone 1 points 4 days ago* (last edited 4 days ago) (1 children)
$ dig registry-1.docker.io

; <<>> DiG 9.18.33-1~deb12u2-Debian <<>> registry-1.docker.io
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50801
;; flags: qr rd ra; QUERY: 1, ANSWER: 8, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;registry-1.docker.io.          IN      A

;; ANSWER SECTION:
registry-1.docker.io.   33      IN      A       54.210.249.78
registry-1.docker.io.   33      IN      A       44.218.153.24
registry-1.docker.io.   33      IN      A       107.20.112.188
registry-1.docker.io.   33      IN      A       34.234.222.10
registry-1.docker.io.   33      IN      A       34.195.83.243
registry-1.docker.io.   33      IN      A       52.21.128.203
registry-1.docker.io.   33      IN      A       52.0.248.137
registry-1.docker.io.   33      IN      A       52.207.69.161

;; Query time: 47 msec
;; SERVER: 192.168.20.1#53(192.168.20.1) (UDP)
;; WHEN: Tue Aug 12 22:27:45 AEST 2025
;; MSG SIZE  rcvd: 177
$ cat /etc/resolv.conf
# Generated by NetworkManager
search Home
nameserver 192.168.20.1

edit: oh, and in my router's configuration:

  • Primary DNS Server:9.9.9.9
  • Secondary DNS Server:1.1.1.1
[–] iglou@programming.dev 2 points 4 days ago (1 children)

Well this is getting weird.

Have you tried checking if your os has a resolution cashe active? If so, try to flush it.

[–] Zagorath@aussie.zone 1 points 4 days ago* (last edited 4 days ago) (1 children)

I never set one up myself, and this 11 year-old thread implies that Raspbian doesn't have one set up by default. It is a very old thread though, so could be wrong.

edit: this is more recent and also says Raspbian doesn't have DNS caching by default

[–] iglou@programming.dev 2 points 4 days ago (1 children)

At this point I am assuming that it is actually a docker issue.

Can you show your docker daemon configuration?

Hard to tell where it is on your machine. Try ~/.docker/daemon.json, or maybe /etc/docker/daemon.json... Else look for it haha

[–] Zagorath@aussie.zone 1 points 4 days ago

There's a ~/.docker/config.json. In that there're some auths, with keys https://index.docker.io/v1/, https://index.docker.io/v1/access-token, and https://index.docker.io/v1/refresh-token, and then there's "currentContext": "rootless".

There's ~/.docker/contexts/meta/[a long hex string]/meta.json, with {"Name":"rootless","Metadata":{"Description":"Rootless mode"},"Endpoints":{"docker":{"Host":"unix:///run/user/1000/docker.sock","SkipTLSVerify":false}}}.

The only file in /etc/docker is key.json.