When comparing YUM vs Docker, the Slant community recommends Docker for most people. In the question“What are the best Linux package managers?” Docker is ranked 11th while YUM is ranked 15th. 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 Avoids dependency hell
All the metadata for installed software is stored into a XML file. This is used to avoid conflicting dependencies among packages. What's more, YUM also automatically syncs remote metadata to the local client in order to avoid failures if a command is not run at the correct interval.
Pro Simple syntax
Pro Binary delta for faster transfer times
Yum supports Delta RPMs which allow transmitting only the parts of the package that have changed.
Pro Is/was the industry standard
YUM is still widely used in corporate environments.
Pro Provides pre and post install sanity checks
What might be thought of a standard feature, isn't. Thankfully RPM provides both a transaction test and a post install verification to make sure everything installs neatly.
Pro Supports multiple verification methods
Supports verification with GPG and MD5.
Pro Clean and easy to understand
Pro Supports multiple compression methods
Supports gzip, bzip2, lzma, or xz compression.
Pro Allows for complex dependency definitions
Alongside allowing dependency on a certain package, it allows depending on a library, versioned symbol, or a GAC'd Mono assembly.
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
Cons
Con Can be very slow to download headers if not on broadband
Yum can be much slower than other package managers if the internet speed is not at least average to high.
Con Slow (and might be fragile) dependency resolution
YUM dependency resolution is very slow. In addition to it, the people often experiencing very hard dependencies (it might be not a YUM problem).
Con Does fsync often
Like its successor, DNF, YUM does fsync too often. The result is poor YUM and system performance while YUM does its work.
Con Very slow overall
YUM is very slow - beginning with relatively slow startup, extremely slow default plugins, slow dependency resolution, and ending with slow installation of packages.
Con Poor design
YUM is written in Python 2 and people often blaming the quality of YUM's code.
Con Large image size
Con Security concerns
Con Kernel OS fragmentation
