I just found out that docker is launching a new feature called "Docker App" and is defined as:
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
Looking more into it, it seems like it is another way to package your application with the tools required to run/provision it incorporated based on CNAB (YouTube link with Microsoft explanation on what CNAB is).
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)
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?
It is Docker Compose with a separate file for configuration and a third file for metadata. You can add a Docker App to a registry. You would choose it over Docker Compose because the configuration file would be useful and so would the ability to push/pull the app as a unit to/from a registry.
It is a packaging tool. It's aiming to apply the same benefits that Docker has for monolithic applications to multi-service applications. Simplicity is an objective. It looks like it will be easy to get to grips with. This will mean many people will choose it over Kubernetes. Kubernetes has a reputation as being hard and you can't just dive in without familiarising yourself with its concepts and terminology.