When comparing Docker vs Flatpak, the Slant community recommends Docker for most people. In the question“What are the best Linux package managers?” Docker is ranked 11th while Flatpak is ranked 18th. The most important reason people chose Docker is:
Docker creates a single object, containing an application with its dependencies, that can be moved between any docker-enabled machines, guaranteeing the same environment for application execution.
Specs
Ranked in these QuestionsQuestion Ranking
Pros
Pro Allows for portable application deployment
Docker creates a single object, containing an application with its dependencies, that can be moved between any docker-enabled machines, guaranteeing the same environment for application execution.
Pro Git-like capabilities
Docker tracks changes in systems. It allows for commits and rollbacks and for quick deployment due to having to deploy only the updated code.
Pro Allows re-using components
Docker essentially allows creating boilerplate systems (a LAMP stack, for example) that can be used as a starting point on multiple projects. And you can find multiple such containers already created by people in their public registry.
Pro Automatic build
Allows automatically assembling a container from its source code.
Pro Provides easy sharing and installation of containers through a public registry
Docker allows easily pushing and pulling containers to and from their public index.docker.io registry. Additionally, dotCloud maintains a list of official repositories of the more popular containers.
Pro Application-centric
Pro Works in virtualized environments
You can set up Docker within an already virtualized environment such as a virtual machine. This allows you to run Docker on Mac and Windows, among other use-cases.
Pro Low overhead
Pro Supports a wide range of isolation tools
Docker can be used with OpenVZ, systemd-nspawn, libvirt-lxc, libvirt-sandbox, qemu/kvm, BSD Jails, Solaris Zones, and chroot.
Pro Tool ecosystem
Pro Cross-distribution
You can install flatpak packages on any distro you want.
Pro fast
searching, installing and updating are faster than others in my experience
Pro Doesn't bog system down like snaps.
Plus it's not proprietary.
Pro Application sandboxing
All applications are limited to a set of predefined permissions, enhancing privacy and security.
Pro A well-written documentation
Pro Flexible runtime management
You can install a lot of runtimes for different apps, making applications a lot more compatible while still allowing some applications to share their runtimes.
Cons
Con Large image size
Con Security concerns
Con Kernel OS fragmentation
Con Bloated
Due to the way Flatpack handles packaging, this can lead to a large cache being created which quickly inflates to unreasonable sizes. Not only this, but using flatpack requires a large chunk of space to be reserved for it's own file hierarchy.
Con Difficult to export packages
It is difficult and convoluted to export installed packages and move to another system.
Con Doesn't work well with CLI programs
Invoking CLI programs can be a pain. From the weird reverse DNS package names to difficulty in easily managing container environment.