Docker is a platform that makes it easier to create, deploy, and use an application using containers. A container contains an application with all parts of it needed such as libraries and other dependencies, and ships it as one package.
Instead of using dedicated resources like virtual machines, docker shares kernel, and other resources of the host system. When you learn docker it has two different concepts i.e. docker images and docker containers.
In this article, we will discuss docker images and containers you will also see differences and similarities between these two.
You can follow how to install docker on Ubuntu if you want to install it in Linux.
Docker image is an immutable file that is essentially a snapshot of a container. Images are created with
build command, and they produce a container when started with the
run command. Docker pulls these images from the Docker Hub or from a local registry.
Docker images consist of multiple layers stacked to one another. The layers may differ from each other but each of them originates from the previous one. These layers essentially are read-only files to which the container layer will be added when you start a virtual environment.
Every time you change the initial state of an image and save the existing state you create a new image with an additional layer on top of the previous image. In this way, you can create an unlimited number of docker images.
Working with docker images
There are certain commands that you can use to work with docker images. Before you execute any docker command make sure you have docker installed on your system.
You can pull a docker image by using the given command.
docker pull ubuntu
This will download the docker image of Ubuntu.
To see the list of downloaded images on your system use –
This will display output like given in the image.
By using the
docker history command you can see all the layers of a docker image.
Before we come to docker containers first understand what is containerization.
Containerization is a process that encapsulates an application in a container with its own operating environment. It is a kind of lightweight alternative to full machine virtualization. The benefit of using the containers is that you can run the applications on any physical machine without worrying about dependencies.
A docker container is an instance of a docker image. This provides a virtualized runtime environment to isolate an application from the underlying system.
Docker defines certain states for a container this include created, restarting, running, removing, paused, exited, and dead. As we discussed earlier docker images are created using
build command, an image produce a container when started with the
Working with docker containers
Docker provides some commands to work with docker containers. Some of them are given below.
After downloading a docker image use the given command to start it as a container –
docker run -it ubuntu
This will start the Ubuntu container in your terminal.
You can see the list of all running containers by using –
If you want more to know about docker containers you can see how to run a docker container in Linux.
Docker images vs containers
In the above two sections, we have explained what are docker images and containers. Now you should already have some understanding of how these two are related to each other. Docker images can exist without the container, but you need an image to start a container. Images describe the applications whereas containers are an instance of these images.
I hope you understand the differences between docker images and containers. Now if you have a query then write us in the comments below.