Skip to content

"Pi 5: Docker daemon/socket missing after reboot/power glitch, Bitcoin Node stuck 'Restarting...', no containerd.service unit #2097

@bobtheaverage

Description

@bobtheaverage

Hey everyone,This started as a pure educational project — I wanted to understand Bitcoin nodes, solo mining, hardware limits, and self-hosted pools from the ground up. I was fully aware the odds of actually finding a block are basically zip (lottery-level), but the goal was learning, not riches.HardwareRaspberry Pi 5
Dual Samsung 980 PRO 1 TB NVMe SSDs on PCIe HAT (2 TB raw)
BitAxe Gamma Duo (~2.5–2.94 TH/s)
7 NerdMiners (~1 MH/s each, ~7 GH/s total swarm)

SoftwareUmbrel OS (kernel 6.12.47+rpt-rpi-2712, Debian trixie snapshot ~Sept 2025)
Bitcoin Core node (30.0.0, ~69.65% synced, 10 peers, ~688 GB blockchain on first SSD)
Second SSD mounted at /mnt/ssd2 (~917 GB usable, 864 GB free)
Mining pool: solo.ckpool.org:3333 (public solo — local attempts failed)

What worked greatNode sync is fast on Pi 5 + NVMe SSDs — from ~7% to ~70% in a reasonable time.
BitAxe Gamma Duo is rock-solid: 2.60 TH/s real-time, 19.38 J/Th efficiency, temps ~60 °C (ASIC 1), fan ~69%, 50.3 W power.
NerdMiner swarm reliable.
Switched everything to solo.ckpool.org:3333:Wallet Address: bc1q254lpgr7xtxlea4xpyjtmzclq4sh6hsf7wuh7t.[UniqueWorkerName]
(e.g., .BitAxeGammaDuo, .NM-Bob2, .Nerd1)
Password: x (ignored)

solostats.ckpool.org shows real progress:Worker count: 2 (more coming as low-hash rigs submit)
Total shares: 11.78 M
Best share: 26.22 M (new personal best!)
Hashrate: 2.94 TH/s (5m), 2.46 TH/s (1hr)
1-year block odds: 0.012% (conservative — lottery, but real)

What didn’t work — the Docker nightmare (the real time sink)
I spent hours — literally hours — trying to set up a local CKPool (compiled from source) and Public Pool (manual Docker Compose clone) so I could have a private solo pool with no 2% fee. I tried again and again:Compile CKPool → paths wrong, binary not where expected, config JSON syntax errors
Switch to cookiefile auth → "Invalid config string or missing object for auth"
Switch to plain auth/pass → 401 Unauthorized from the node (Umbrel hides credentials)
Try Public Pool manual clone → docker compose up -d fails with "invalid proto" (no compose file in repo)
Try docker pull getumbrel/public-pool:latest → repository doesn't exist
Try sudo docker stop/start bitcoin_app_1 → "Cannot connect to the Docker daemon" over and over
Restart containerd → silent, no effect
Reboot → daemon still dead, socket missing (/var/run/docker.sock not found)
Check status → "active (running)" but no socket created

I repeated these steps dozens of times across reboots, power cycles, hard resets — always the same wall: Docker daemon refuses to cooperate. No ~/umbrel/scripts/app or restart scripts exist. No docker.service or containerd.service units controllable. After a power glitch/UPS click, it never recovered.Bottom line: My Umbrel build (Pi 5 edge version) has a broken containerd startup — it’s not the steps, it’s the environment. Others succeeded because they had newer/stable releases or never hit a glitch mid-setup.Current statusMining is live and working on public solo.ckpool.org (no local pool needed).
Node is syncing (~69.65%, 10 peers, 688 GB used).
Second SSD mounted at /mnt/ssd2 (~864 GB free).
No local pool — but solo is delivering real shares and odds.

Lessons learnedThis was always an educational project — fully aware chances are zip.
Learned node sync, solo vs shared, hardware limits, Linux/SSH basics, Docker/containerd quirks.
Persistence matters — even when software fights back.

Next stepsKeep rigs hashing on solo.ckpool.org (add unique worker names for better solostats visibility).
Monitor solostats.ckpool.org (shares climbing fast, new best-diff 26.22 M).
If I want local/private pool later: re-flash Umbrel to latest stable image (clean install, boot from SSD) — fixes containerd quirks in many cases.

If you're setting up solo mining on Pi 5 + Umbrel:Skip local pool for now — solo.ckpool.org is simple and works.
Use unique worker names on each rig (.RigName) — makes stats page useful.
Dual NVMe SSDs are awesome — mount the second one manually for extra space.

Happy to answer questions or share more details (config, solostats screenshots, etc.).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions