Selbst kleine Stücke Software bringen, zählt man zugrundeliegende Schichten bis hinunter zum Systemkernel mit, eine große Anzahl von Abhängigkeiten mit. Nicht immer sind diese Abhängigkeiten über alle Versionen hinweg zueinander kompatibel, so dass schnell eine Komplexität entsteht, die durch Paketmanager nicht immer zu lösen ist.
Mit Docker lassen sich Anwendungen in sogenannten Containern voneinander und dem System isolieren und zusammen mit all ihren Abhängigkeiten transportieren und schließlich installieren.
Früher nur mit viel Aufwand zu realisierende Probleme wie unterschiedliche Versionen der gleichen Software auf einem Rechner, sofortige Updates einzelner Komponenten ohne ein Zwangsupdate Anderer und vieles mehr ist mit Docker ganz einfach: Neues Image herunterladen, Container auf Basis des neuen Images neustarten.