Interview Questions and Answers in Docker : Part-1

vivek bangare

Vivek Bangare


Interview Questions and Answers in Docker : Part-1

Hello everyone, ‘Interview questions and answers in Docker‘, this article contains mostly asked interview questions and their answers. I am creating a series of questions and answers for beginners to advance.

Do you know why docker system prune is used? What does it do?

'docker system prune' is mostly used to remove all unused images, containers, and networks. Volumes are not pruned by default.

Will you lose your data, when a docker container exists?

Docker containers are designed to be stateless by default, meaning that data stored within the container itself is not persistent. However you can configure Docker to use  volumes or bind mounts to persist data outside the container

What is Docker? Docker lifecycle and Docker container state

Docker is an open-source platform that allows you to automate the deployment, scaling, and management of applications using containerization.

Docker lifecycle to the various stages  as follows:

  • Image Creation
  • Container Creation
  • Running state
  • Stopped state
  • Paused state
  • Deletion

Overall, Docker provides a flexible and efficient way to manage and deploy applications, allowing for easy container creation, starting, stopping, and deletion while maintaining the state of containers as needed.


Use of the docker save and docker load commands?

The docker save and docker load commands are used to save Docker images to a file and load them back into Docker, respectively. These commands are particularly useful when you need to transfer Docker images between different environments or when you want to back up your images for future use.

Default docker network driver, and how can you change it when running a Docker image?

The default network driver in Docker is the bridge network driver. When you run a Docker container without specifying a network driver, it automatically uses the bridge network.

To change the network driver when running a Docker image, you can specify the desired driver using the --network flag followed by the driver name. Here's an example:

docker run --network=<network-driver> <image>


Replace <network-driver> with the name of the desired network driver and <image> with the name of the Docker image you want to run.

Is there any problem with just using the latest tag in a container orchestration environment? What is considered best practice for image tagging?

Using the latest tag for Docker images in a container orchestration environment can introduce potential problems and is generally not considered a best practice. Here's why:

  • Lack of version control
  • Non-deterministic behavior
  • Inconsistent environments
What is Docker Swarm and which network driver should be used with it?

Docker Swarm is a native clustering and orchestration solution provided by Docker.

The recommended network driver is the overlay network driver. 

Docker Compose? What can it be used for?

Docker Compose is a tool provided by Docker that allows you to define and manage multi-container Docker applications.

Some key use cases and benefits of using Docker Compose:

  • Define and orchestrate multi-container applications
  • Easy setup and reproducibility
  • Simplified local development
  • Service scaling and load balancing
  • Service dependencies and ordering
  • Integration with Docker Swarm
Diffrence between entrypoint and cmd?


  • ENTRYPOINT specifies the command that is always executed when the container starts.
  • It provides the primary command or executable for the container.
  • If ENTRYPOINT is used in the Dockerfile, it will override any command specified with CMD at runtime.
  • ENTRYPOINT is typically used for defining the main application or process that runs inside the container.


  • CMD specifies the default arguments for the command defined in ENTRYPOINT, or it can be used to define the command itself if ENTRYPOINT is not specified.
  • CMD is optional and can be overridden when running the container by providing a command or arguments as parameters.
  • If both CMD and ENTRYPOINT are specified in the Dockerfile, the CMD values will be passed as arguments to the ENTRYPOINT command when the container starts.
  • CMD is typically used to provide default settings or arguments for the main command specified in ENTRYPOINT, but it can also be used to define a standalone command if ENTRYPOINT is not used.