What is Docker Part 2
In previous article I attempted to address the answer of why use Docker and I in the long run said that we use Docker because it makes it really easy to install and run a new software on our computer.
Now I’m going to try to answer the other big question here which is what is Docker.
Ahhh! well this question is a lot more challenging to explain.
Whenever you see somebody refer to Docker in a blog or an article or a discussion or any place it might be they’re kind of making reference to an entire ecosystem of different projects tools and pieces of software.
So if somebody says Oh no doubt I use Docker on my project they might be referring to Docker client or Docker server they may be referring to Docker Hub or Docker compose.

Again these are all projects tools pieces of software that come together to form a platform where ecosystem around creating and running something called containers.
And so your immediate question might be.
OK well what’s a container.

That’s a very good question and that’s a question that I’m going to be trying to answer.
OK wait let me first explain what is an image and container.
IMAGE : Single file with all the dependencies and configuration to run a program
CONTAINER : Instance of an image. Runs a program.
But right now let me first give you two important pieces of terminology. When I ran that command something called the docker CLI reached out to something called the Docker Hub and it downloaded a single file called an image an image is a single file containing all the dependencies and all the configuration required to run a very specific program for example NGINX which is what the image that I just downloaded was supposed to run.
This is a single file that gets stored on your hard drive and at some point time you can use this image to create something called a container a container is an instance of an image and you can kind of think of it as being like a running program.
In this article I’m not going explain how container works exactly, But maybe some other time.
But right now all we really need to understand is that a container is a program with its own isolated set of hardware resources so it kind of has its own little set or its own little space of memory has its own little space of networking technology and its own little space of hard drive space as well.
These images and containers are the absolute backbone of the docker.
So let’s take a deep breath and that’s it.