DEV Community

Explain Docker Like I am Five

Jysan Aziz on April 28, 2018

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.

Collapse
 
_nicovillanueva profile image
Nico

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.

Collapse
 
jeexan2 profile image
Jysan Aziz • Edited

Thanks a lot for your explanation.

Collapse
 
fadhilradh profile image
Fadhil Radhian

LOL .. your explanation is great and funny ! Thanks a lot

Collapse
 
rhymes profile image
rhymes
Collapse
 
jeexan2 profile image
Jysan Aziz

Thanks a lot.

Collapse
 
thejoezack profile image
Joe Zack

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!

Collapse
 
jeexan2 profile image
Jysan Aziz

Thanks a lot.

Collapse
 
pandademic profile image
Pandademic

You won't find a better explanation than:

or
@_nicovillanueva 's awesome response on this page

But here's my shot:

Docker is the attempt to fix 'it works on my machine'.

Literally.

meme
In a docker , you package up your entire environment and ship it.

Ya put your invention(a coffee machine) in a portable box(container) and to use it , you move it to the lounge(production). It's in it's box , so even if it explodes , it won't take out the next thing over(another part of the application). It also can't complain that it doesn't have what it needs , since everything is in the box.

If it does happen to explode , you can just replace it.

Hope it helps!

Collapse
 
nickhodges profile image
Nick Hodges

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