When I started learning #docker it was a bit confusing
To ease the learning curve, here’s how I explain docker to testers:
(simplifying things A LOT to make it easy to understand here)
1. Imagine a windows environment ‘X’ running on a desktop machine
2. Now create an image of that environment ‘Y’
3. Run that image (Y) on top of your desktop environment (X)
4. Any app running on Y would not affect X right? So that’s the first thing to appreciate.
5. Now whats common between X and Y? The OS, windows in this case.
6. So let’s take out what’s common, the OS. Remove the duplicate one from Y
And that’s what Docker does, it removes the duplicate OS and related resources, and uses the OS from X for running stuff on Y as well
All this while maintaining the isolation of both environments..
Along with a bunch of other benefits that come with this..
To read on the evolution towards docker and a brief intro on how it works: