TL;DR: Your docker config references a credential helper that does not exist on this machine. Either install Docker Desktop (which provides it) or remove the `"credsStore": "desktop"` line from ~/.docker/config.json so docker stores credentials in the file again. This config usually arrives by copying a Mac's ~/.docker to a Linux box.

## The error

```text
error getting credentials - err: exec: "docker-credential-desktop": executable file not found in $PATH
```

## Fix it

1. Inspect the config:
   `cat ~/.docker/config.json`
   Expected: contains `"credsStore": "desktop"` (or `"credStore"`).
2. Option A (no Desktop here): delete that line, keeping valid JSON.
3. Option B (Desktop wanted): install Docker Desktop for Linux, which ships the helper.
4. Re-run `docker login` and verify pulls work.

## When this applies
- Linux hosts with a copied-over docker config
- CI images inheriting a developer's config.json

## When this does NOT apply
- "incorrect username or password" (credentials present but wrong)
- macOS with Desktop installed (helper should exist; reinstall Desktop)

## Versions
All Docker versions; the credsStore mechanism is long-standing.

## Why it happens
`credsStore` delegates credential storage to an external binary. If the binary is absent, EVERY credential read fails, including anonymous pulls that check for stored creds first.

## Edge cases
- Validate JSON after editing: `python3 -m json.tool ~/.docker/config.json`.
- Alternatives: `"credsStore": "secretservice"` (Linux keyring) or `pass` based helpers, if you want secure storage without Desktop.
- Some distros package `docker-credential-helpers` separately; installing it provides `docker-credential-secretservice` and `pass` variants.
