Docker Explained in Simple Terms

Photo by Ian Taylor on Unsplash

Docker Explained in Simple Terms

Docker for beginners

Docker has revolutionized the way we deploy applications by eliminating the need for extensive setup instructions or virtual machines. It provides fast and efficient application deployment without requiring additional operating systems on team members' machines.

Understanding Docker

What is a Docker Image?

Docker Images are templates containing all dependencies and configurations of an application, forming the basis for creating Docker containers.

The Role of Docker Containers

A Docker Container is a running instance of a Docker Image. It includes the application and its dependencies, operating in isolation from the host system.

Difference Between Docker Containers and Virtual Machines

The key distinction lies in how they handle the operating system. Docker containers directly utilize the host's OS, saving resources and enhancing efficiency, unlike virtual machines that require a separate guest OS.

Practical Examples with Docker

Simple Hello Word

The command docker run hello-world downloads the hello-world image and creates a container that runs this image.

The process of executing docker run hello-world involves:

  1. Contacting Docker Daemon: The Docker client contacts the Docker Engine (Docker Daemon).

  2. Image Download: If the hello-world image is not present locally, it is downloaded from Docker Hub.

  3. Container Creation: A container based on the downloaded image is created, and the application is executed.

  4. Streaming the Output: The output "Hello World" is displayed on the console by the Docker client.

When the docker run hello-world command is executed again, Docker uses the already existing image, eliminating the need for a repeat download. To separately download an image without executing a container, the command docker pull hello-world is used. This feature ensures that Docker efficiently manages local resources by avoiding unnecessary re-downloads of images, thereby streamlining the process of running containers.

States of Docker Containers

Docker containers can exist in various states such as Stopped, Paused, and Running. In this section, I will explore and clarify the key states of Docker containers, detailing their significance and application in container lifecycle management.


The running state in Docker indicates that a container is actively executing its assigned tasks or applications.

To view all currently active Docker containers, use the docker ps command.


The restarting state in Docker indicates that a container is in the process of stopping and then automatically starting again, usually triggered by a specific command or a container configuration that requires it to restart under certain conditions.

If your container continuously restarts, use the docker logs command to check for errors, or review your Docker configuration to identify and resolve any issues.


The Exited state in Docker indicates that a container has finished running and has stopped its operations. This state usually occurs after the container has completed executing its designated tasks or commands.

For more detailed information on Docker container states and their explanations, you can refer to the official Docker documentation:

Did you find this article valuable?

Support Christian Lehnert by becoming a sponsor. Any amount is appreciated!