How do you monitor status of multiple docker containers?
Note: answer based only on docs, I didn't play with docker much.

If you choose scripting you could pick a higher layer than just ps, based on either:


the docker-compose events CLI:



Usage: events [options] [SERVICE...]

Options:
    --json      Output events as a stream of json objects

  
  Stream container events for every container in the project.



the docker events CLI:



  Description 
  
  Get real time events from the server


You'd be looking for the die event of the container(from Extended description):


  Use docker events to get real-time events from the server. These
  events differ per Docker object type.
  
  Object types
  
  CONTAINERS
  
  
  die
  


The event appears to be generated regardless of the restart policy (from Docker Events Explained):



But you're right, there's a ton of monitoring tools out there, I also suspect some already do what you're seeking.

Just aimlessly wandering through those links I got to Implementing Docker event monitoring from scratch:


  What else? I can create alerts on them. The next time any of my
  containers decide to puke and die, I can get an SMS message about
  their doomed state.