My shot at ELYF:
In your computer, everything works because of little things called "processes". These guys talk to each other to keep everything running. But sometimes they disagree at stuff because one thinks something should be black while the other thinks it should be red (for example, because of incompatible versions).
Maybe you built some super cool process that does super awesome things like letting you buy catnip on the internet. That process needs to talk to other neighbor processes that agree with it on which color the road between them should be and have no distractions around it.
Traditionally, you would send your little process to play with others and hope for the best. But the little guy can eventually grow up and change it's worldviews and opinions on road colors. This will introduce disagreements with it's peers.
Introducing: . The point is that you can send your little process to play with others but inside a protective shell. It will have everything it needs to do it's job within it's little bubble. Also, from it's point of view, it'll be completely alone (processes are loners, don't feel bad for them). You will be able to modify it's behavior and it's environment, and test it way before releasing him into the wild.
Once you have all your processes in their own hamster balls running around and playing safely, you can pick them up, move them around and group them using a crane. If any of them pops or starts throwing a tantrum, you can pick it up and put it in a corner to scold it for being a bad boy (saying "kill it" would be too rough for a 5yr old) or just replace it for a new one.
That was a really lame and childish attempt at explaining containers and a bit of orchestration. Don't know if it helped at all, but it was fun to write.
Thanks a lot for your explanation.
Welcome Jysan, there are a few discussions about this topic:
Hope they help you understand Docker better
Thanks a lot.
Docker is a company and a suite of tools designed for managing containers, which are lightweight modular components that can be deployed and scaled using sophisticated orchestration tools like Kubernetes.
To a five year old, I would say that it's a tool for making developer's lives more consistent and reliable...after they get through the learning curve. :)
Uh...neither of these explanations good. It's tough to ELI5 without saying the words "container" or "orchestration", which are their own beasts.
Docker is like a single EXE for your multi-filed application.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.