Docker compose refuses to start containers (no such container)

Hello,

I tried to re-run docker compose (docker compose up) with a compose.yaml that worked in the past, however I now get an Error response from daemon: No such container: 0b4bfb0d95d1daf4cfe520aa25184ed8a9b65257eb7337ea2f1fcfbd75b2bc71 error.
You can find the compose.yaml file on the github page of my open source project. Unfortunately trying to attach it here resulted with an error message.

Building the container with docker compose build works fine. I already tried docker system prune but that did not help. When running docker image ps the images are listed.

docker compose version
Docker Compose version 2.40.3
docker --version
Docker version 29.1.1, build 0aedba58c2

Based on the fact that it misses a container which it should start and not looking for it, my guess is that the docker data root was corrupted and some metadata is still there, but the there is no container with the container id that belongs to the container name behind the compose service.

Try to get information about the container.

This command gives you the service name in the first column

docker compose ps -a

Then you can inspect the container to get the ID

docker container inspect CONTAINERNAME --format '{{ .ID }}'

If it doesn’t return the ID, the container is lost and you can try to run docker compose down or just docker container rm CONTAINERNAME hoping that it can at least be deleted.

If you have no important data on the container filesystem (except on bind mounted folders and volumes as you should), deleting the container is safe and you can try up again. If you cannot even delete a container, you would need to manually fix the corruption, but let’s hope you won’t need to.

When running docker compose ps -a I get the same no such container error.

docker compose ps -a
Error response from daemon: No such container: 196634b25f76a5b2053f002f7064c134c9cc39252126c891def0c0e6c2045f4a

After renaming all container names (adding a 2) in the compose.yaml the error is now gone.