Docker makes it really easy to install and run any software without worrying about installing and setting up software dependencies.
Docker contains different tools or software to form a platform or ecosystem around creating and running containers.
What is a Docker Image and Container?
Docker image is a single file that contains different dependencies or configurations that is required to run a program. Container is an instance of an image that runs a program.
Consider an example of class and object. Class is a blueprint while object is an instance of that blueprint. In this case class is an image and object is a container that runs a program.
What is Docker Client and Server?
Docker client is a tool that allow us to issue and run some commands on our terminal window.
Docker server is a tool that actually serve the following purposes:
- When command is issued it creates images
- Create and runs a container from the docker image
What is Docker Hub?
Docker hub is a cloud based repository where docker user and partners can store different docker images that they create. Using docker hub you can make your images public or private so that other people can or can not see your images.
Using docker hub user can create their own space to store docker images and can access publicly available images.
For example, if you want to create docker image with custom php configurations for your project you can download existing php image and add some of your custom configuration and then publish newly created image on docker hub for your use.
You can either make this new image to be available publicly so that other developers can take an advantage of your image or you can make it private so that only you can use it.