I ran into the same issue yesterday while using Traefik 3.5.6. I had installed Docker from the official Docker package repository (not the Ubuntu-provided one).
After upgrading to Docker 29, the problem appeared. Rolling back to Docker 28.5.2immediately resolved it — everything started working again.
Solutions
1. Downgrade Docker
To revert Docker to version 28.5.2:
sudo systemctl stop docker
sudo systemctl stop containerd
# For Ubuntu 24.04 LTS
sudo apt-get install docker-ce=5:28.5.2-1~ubuntu.24.04~noble \
docker-ce-cli=5:28.5.2-1~ubuntu.24.04~noble \
docker-ce-rootless-extras=5:28.5.2-1~ubuntu.24.04~noble \
containerd.io=1.7.28-2~ubuntu.24.04~noble
# Continue Ubuntu updates while keeping Docker unchanged
sudo apt-mark hold docker-ce docker-ce-cli docker-ce-rootless-extras containerd.io
sudo systemctl start containerd
sudo systemctl start docker
docker --version
This will restore Docker to the previous stable version compatible with your stack.
2. Set Minimum Docker API Version
If you prefer to keep Docker 29, you can set the minimum API version so Traefik works correctly.
- Create or edit the systemd override file:
sudo vim /etc/systemd/system/docker.service.d/min_api_version.conf
- Add the following content:
[Service]
Environment="DOCKER_MIN_API_VERSION=1.24"
- Reload systemd and restart Docker:
sudo systemctl daemon-reload
sudo systemctl restart docker
- Verify the environment variable is applied:
sudo systemctl show docker | grep DOCKER_MIN_API_VERSION
Both methods work, but downgrading Docker is usually the fastest way to restore a broken stack, while setting the minimum API version allows you to keep Docker 29 but maintain compatibility with Traefik.