WalzoneInterview Prep
📞 Interviewing soon? Practice with a realistic AI mock phone interview — it calls you, then scores you. First 15 min FREE →

DevOps · Beginner · question 8 of 100

Can you explain the difference between a Docker image and a Docker container?

📕 Buy this interview preparation book: 100 DevOps questions & answers — PDF + EPUB for $5

A Docker image and a Docker container are two fundamental concepts in the Docker ecosystem. Let’s explore the differences between them.

**Docker Image**

A Docker image is a lightweight, stand-alone, executable package that includes everything needed to run a specific piece of software, including the code, runtime environment, system tools, libraries, and settings. Docker images are built from a list of instructions specified in a text file called a Dockerfile.

Docker images have a hierarchical structure, where each layer represents a set of filesystem changes. Layers help to optimize the build process and minimize the size of the final image. Docker images are saved in a central registry, such as Docker Hub or a private registry, as a versioned entity and can be shared or deployed across different environments.

For example, you might have a Docker image that contains the Python runtime environment, as well as the required dependencies for your application.

**Docker Container**

A Docker container is a running instance of a Docker image. When you start a Docker container from an image, Docker creates a thin writable layer on top of the image layers, where the running process can store any changes made to the filesystem. This writable layer is ephemeral and only exists while the container is running.

Containers are isolated from each other and from the host system, providing a consistent runtime environment for your software. Docker makes it easy to create, stop, restart, or destroy containers by providing a straightforward API and command-line interface.

For example, you might run a container from the aforementioned Python Docker image, passing the necessary environment variables and arguments to start your application.

Here’s a simple analogy to better illustrate the difference:

- A Docker image is like a blueprint or a class in object-oriented programming, defining the structure and properties of an entity.

- A Docker container is like a physical object or an instance of a class, created based on the blueprint (image) with its specific state and behavior.

To sum up:

- Docker Image:

A self-contained package, including code and dependencies

Built from a Dockerfile

Composed of layers

Stored in a registry, like Docker Hub

- Docker Container:

A running instance of a Docker image

Has a thin writable layer for runtime changes

Isolated from other containers and the host system

Can be easily created, stopped, destroyed, etc.

To visualize the relationship between Docker images and containers, you can think of the following hierarchical structure:

Docker Image (Base Layer)
  ├── Docker Image (Layer 1)
  │    ├── Docker Container (Instance 1)
  │    └── Docker Container (Instance 2)
  └── Docker Image (Layer 2)
       ├── Docker Container (Instance 3)
       └── Docker Container (Instance 4)
Reading is step one. Saying it out loud is the interview. Our AI interviewer calls your phone and runs a realistic DevOps interview — then scores it.
📞 Practice DevOps — free 15 min
📕 Buy this interview preparation book: 100 DevOps questions & answers — PDF + EPUB for $5

All 100 DevOps questions · All topics