Docker intro
Docker solves the "it doesn't work on my machine" problem. This problem occurs when software that was developed within a certain environment doesn't work / leads to unintended behaviours on aanother machine.
This often occurs because:
- The different machines have different tooling
- Different configurations
- Missing hardware dependency / files
Tools to address these issues include Chef, Puppet and Vagrant, although they rely onm hardware and OS knowledge.
Docker takes a simple approach by packaging into virtual OS configured with just enough to run the app and nothing else
It's analagous to cooking a meal vs cooking at someone else's house. Your favourite recipe tastes great when you cook it with your own utensils, with your own stove and setup. But emulating it elsewhere leads to a completely different experience. Docker lets you package up your setup and emulate the cooking experience at someone else's house.