Docker Interview Questions and Answers
Intermediate / 1 to 5 years experienced level questions & answers
Ques 1. 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 2. 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 3. 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 4. 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 5. 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 6. 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 7. 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 8. 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 9. 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 10. 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 11. 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 12. 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 13. 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 14. 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 15. 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 16. 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 17. 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
Most helpful rated by users: