Docker Interview Questions and Answers
Freshers / Beginner level questions & answers
Ques 1. What is Docker?
Docker is a containerization platform that allows developers to package, distribute, and run applications in isolated environments called containers.
Example:
docker run -d -p 80:80 nginx
Ques 2. What is the purpose of Dockerfile?
Dockerfile is a script that contains instructions for building a Docker image. It specifies the base image, application code, dependencies, and other configurations.
Example:
FROM ubuntu
RUN apt-get update && apt-get install -y nginx
Ques 3. What is the difference between a Docker image and a Docker container?
An image is a lightweight, standalone, and executable package that includes everything needed to run a piece of software. A container is a runtime instance of a Docker image.
Example:
docker run -d my_image
Ques 4. How do you remove all Docker containers?
You can use the following command to remove all Docker containers: docker rm $(docker ps -a -q)
Example:
docker rm $(docker ps -a -q)
Ques 5. How do you check the logs of a running Docker container?
You can use the `docker logs` command followed by the container ID or name to view the logs of a running container.
Example:
docker logs container_name
Ques 6. What is the purpose of Docker Hub?
Docker Hub is a cloud-based registry service that allows developers to share and distribute Docker images. It serves as a central repository for Docker images.
Ques 7. How do you remove a Docker image?
You can use the `docker rmi` command followed by the image ID or name to remove a Docker image.
Example:
docker rmi image_name
Ques 8. How do you pass environment variables to a Docker container?
Environment variables can be passed to a Docker container using the `-e` or `--env` option with the `docker run` command.
Example:
docker run -e MY_VARIABLE=value my_image
Ques 9. What is Docker Registry?
Docker Registry is a storage and distribution system for Docker images. It can be a public registry like Docker Hub or a private registry hosted within an organization.
Ques 10. How do you build a Docker image from a Dockerfile?
You can use the `docker build` command followed by the path to the directory containing the Dockerfile.
Example:
docker build -t my_image:latest .
Intermediate / 1 to 5 years experienced level questions & answers
Ques 11. Explain the difference between an image and a container.
An image is a lightweight, standalone, and executable package that includes everything needed to run a piece of software. A container is an instance of a running image.
Example:
docker create my_image
Ques 12. How do you link containers in Docker?
Docker provides network options like --link and user-defined networks to connect containers. The --link option is now considered legacy, and user-defined networks are recommended.
Example:
docker network create my_network
docker run --network my_network --name container1 my_image1
docker run --network my_network --name container2 my_image2
Ques 13. Explain Docker Compose.
Docker Compose is a tool for defining and running multi-container Docker applications. It uses a YAML file to configure the application's services, networks, and volumes.
Example:
version: '3'
services:
web:
image: nginx
ports:
- '80:80'
Ques 14. Explain the concept of Docker Volumes.
Docker Volumes are used to persist data generated by and used by Docker containers. They provide a way to share data between containers and persist data even if the container is removed.
Example:
docker run -v /path/on/host:/path/in/container my_image
Ques 15. What is the role of a Dockerfile in Docker?
A Dockerfile is a script that contains a set of instructions to build a Docker image. It defines the base image, adds application code, sets environment variables, and configures the container.
Example:
FROM node:14
WORKDIR /app
COPY . .
RUN npm install
CMD ["npm", "start"]
Ques 16. Explain the difference between Docker containers and virtual machines.
Docker containers share the host OS kernel, making them more lightweight and faster than virtual machines. VMs, on the other hand, run a full OS, leading to higher resource overhead.
Ques 17. What is the purpose of the ENTRYPOINT instruction in a Dockerfile?
The ENTRYPOINT instruction sets the command that will be executed when a container is run. It provides the default executable for the container and can be overridden at runtime.
Example:
ENTRYPOINT ["/usr/bin/myapp"]
Ques 18. Explain the concept of Docker Networking.
Docker Networking enables communication between containers and external networks. It provides various network drivers, such as bridge, host, overlay, and macvlan.
Ques 19. How can you limit the resources (CPU, memory) a container can use?
Docker allows resource constraints to be set using the `--cpu` and `--memory` options when running a container.
Example:
docker run --cpu=0.5 --memory=512m my_image
Ques 20. What is the purpose of Docker Swarm?
Docker Swarm is a native clustering and orchestration solution for Docker. It allows you to create and manage a swarm of Docker nodes, making it easy to scale and manage applications.
Ques 21. What is the purpose of Docker Compose volumes?
Docker Compose volumes allow data to persist between container restarts. They are specified in the `docker-compose.yml` file and are used for sharing data between services.
Example:
volumes:
- data_volume:/app/data
Ques 22. Explain the concept of Docker Swarm Services.
Docker Swarm Services define how containers should behave in production. They enable scaling, rolling updates, and load balancing across a swarm.
Example:
docker service create --replicas 3 my_image
Ques 23. Explain the concept of Docker Overlay Network.
Docker Overlay Network is a multi-host network that connects Docker containers using overlay drivers. It enables communication between containers running on different Docker hosts.
Ques 24. Explain the concept of Docker Image Layers.
Docker Image Layers are the intermediate layers produced during the image build process. They are cached and reused, improving build efficiency.
Ques 25. What is the purpose of Docker Machine?
Docker Machine is a tool that makes it easy to create and manage Docker hosts on local machines or cloud providers. It simplifies the process of setting up Docker environments.
Ques 26. How can you share data between containers in Docker?
Data can be shared between containers using Docker Volumes or by using shared directories when running containers on the same host.
Example:
docker run -v /path/on/host:/path/in/container my_image
Ques 27. How do you update a Docker service in a Swarm cluster?
You can use the `docker service update` command to update a Docker service in a Swarm cluster. It allows you to change the image, replicas, and other configurations.
Example:
docker service update --image new_image:latest my_service
Experienced / Expert level questions & answers
Ques 28. How does Docker Swarm differ from Kubernetes?
Docker Swarm and Kubernetes are both orchestration tools for managing containerized applications. Kubernetes is more feature-rich and widely adopted, while Docker Swarm is simpler to set up and use for smaller deployments.
Ques 29. What is the purpose of the HEALTHCHECK instruction in a Dockerfile?
The HEALTHCHECK instruction adds a health check to a Docker image. It allows you to define a command to check the health of a running container and provide feedback to Docker.
Example:
HEALTHCHECK --interval=5m --timeout=3s CMD curl -f http://localhost/ || exit 1
Ques 30. Explain the concept of Docker Orchestration.
Docker Orchestration involves the automated coordination and management of multiple containers to ensure they work together seamlessly. It includes tools like Docker Swarm and Kubernetes.
Most helpful rated by users: