Explain Docker Like I am Five

Hello, I am Jysan Aziz. A Junior developer from software industry. Want to know a brief about docker. So, I will be obliged if someone explains docker like I am five about inner architecture and implementation.

Did you find this post useful? Show some love!

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: Hamster balls. 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.

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.

Good luck!

Ben Halpern DEV.TO FOUNDER

Hey there, we see you aren't signed in. (Yes you, the reader. This is a fake comment.)

Please consider creating an account on dev.to. It literally takes a few seconds and we'd appreciate the support so much. ❀️

Plus, no fake comments when you're signed in. πŸ™ƒ

Docker is like a single EXE for your multi-filed application.

Classic DEV Post from Jul 13

What tools are in your toolbox?

There are a lot of wonderful tools that help us get stuff done quickly, here is a list of some I use.

READ POST
Follow @lemuelogbunude to see more of their posts in your feed.
dev.to is now open source!
View Announcement Post View GitHub Repo
Jysan Aziz
Member since Apr 8, 2018
Trending on dev.to
The Benefits You Need to Know about Infrastructure as Code
#cloud #devops #aws #productivity
What are/were your go to resources for learning Ruby and Rails?
#discuss #ruby
Explain Knowledge Transfer vs Documentation like I'm five
#discuss #explainlikeimfive
Explain Blockchains, Cryptocurrencies Like I'm Five
#explainlikeimfive
Explain Grunt Task Runner Like I'm Five
#explainlikeimfive #javascript #discuss
How to take breaks while coding
#productivity #learning #career
What part of your first dev job were you least prepared for?
#discuss #career
Explain Blockchains, Cryptocurrencies Like I'm Five
#explainlikeimfive