title: What are docker apps and why would I choose them over normal containers or docker compose?
body: <p>I just found out that docker is launching a new feature called <a href="https://www.docker.com/products/docker-app" rel="nofollow noreferrer">&quot;Docker App&quot;</a> and is defined as:</p>
  <blockquote>
  <p>Docker App is a way to define, package, execute, and manage distributed applications and coupled services as a single, immutable object. Making complex multi-service applications as easy to build, share and run as single containers</p>
  </blockquote>
  <p>Looking more into it, it seems like it is another way to <a href="https://www.youtube.com/watch?v=26e5-UK4YRA" rel="nofollow noreferrer">package your application with the tools required to run/provision it incorporated based on CNAB</a> (YouTube link with Microsoft explanation on what CNAB is).</p>
  <p>While reading some articles online I found out that is used mostly to provision a collection of Docker images containing everything required to perform an installation against a remote resource.
  But to my knowledge we have quite some tools that do exactly that (Terraform, Ansible and Puppet to name some)</p>
  <p>And while I know this is still in experimental phase, I fail to understand when would I choose Docker App over docker-compose or already existing provisioning tools?</p>