The Difference Between Running and Healthy

LEVEL 0

The Problem

You run docker ps. You see your container. Status: “Up 2 minutes.”

Great, it’s running!

But then users complain: “The application isn’t working.”

You check again. docker ps still shows “Up 3 minutes.”

You try to connect to the application. Connection refused.

You check the logs. The application started, but then crashed in an error loop. Or maybe it started, but a critical dependency (like the database) isn’t responding, so it’s alive but useless.

The problem: Docker doesn’t know if your application is actually working. It only knows if the process is running.

If your container’s main process (PID 1) is running, Docker considers the container “running”—even if the application inside is broken.

Engine status: planned. The shell remains visible while the artifact execution is prepared.