TL;DR: Upgrade your docker CLI to match the daemon. On most systems `sudo apt-get update && sudo apt-get install --only-upgrade docker-ce-cli` (or the equivalent for your package manager) fixes it; verify with `docker version` showing client and server on close API versions. Newer daemons drop support for old client API versions, so a stale CLI gets rejected at handshake.

## The error

```text
Error response from daemon: client version 1.41 is too old. Minimum supported API version is 1.44, please upgrade your client to a newer version
```

## Fix it

1. Confirm the mismatch:
   `docker version --format '{{.Client.APIVersion}} {{.Server.APIVersion}}'`
   Expected: client API well below server API.
2. Upgrade the CLI package (Debian/Ubuntu):
   `sudo apt-get update && sudo apt-get install --only-upgrade docker-ce-cli`
   Expected: installs a newer docker-ce-cli.
3. Re-check:
   `docker version`
   Expected: Client API version >= the server minimum, and commands work.

## When this applies
- Daemon upgraded (or CI runner image bumped) while the CLI stayed old
- Third-party tools bundling an old docker CLI (some IDE plugins, older GitHub Actions images)

## When this does NOT apply
- Both versions current but commands still fail (not a version problem)
- You cannot upgrade the client (pin the daemon API instead; edge cases)

## Versions
Docker Engine 24+ enforces minimum client API versions more aggressively; the pattern applies to any client/server skew.

## Why it happens
The CLI negotiates an API version with the daemon on first contact. Daemons refuse clients below a floor because old API shapes cannot express newer features safely, and the floor rises with each Engine release.

## Edge cases
- As a stopgap, `export DOCKER_API_VERSION=1.44` forces the client to negotiate a newer version, but an old client binary may still send malformed requests. Upgrade properly.
- Docker Desktop updates both together; this error is mostly a Linux Engine + separately-installed CLI issue.
- Package managers sometimes split `docker-ce` and `docker-ce-cli`; upgrading the metapackage alone may not bump the CLI.
