dockerdocker-machine

What does the "(healthy)" string in STATUS stands for?


What does the "(healthy)" string in STATUS column stands for?

user@user:~# docker ps

CONTAINER ID  IMAGE   COMMAND  CREATED   STATUS                   PORTS  NAMES

X             X       X        X         Up 20 hours              X      X

X             X       X        X         Up 21 hours (healthy)    X      X

Solution

  • That's the result of the HEALTHCHECK instruction. That instruciton runs a command inside the container every 30 seconds. If the command succeeds, the container is marked healthy. If it fails too many times, it's marked unhealthy.

    You can set the interval, timeout, number of retries, and start delay.

    The following instruction for a Dockerfile, for example, will check that your container responds to HTTP every 5 minutes with a timeout of 3 seconds.

    HEALTHCHECK --interval=5m --timeout=3s \
      CMD curl -f http://localhost/ || exit 1
    

    You get a health_status event when the health status changes. You can follow those and others with docker events.