Docker Interview Questions for Experienced/Docker Interview Questions and Answers for Freshers & Experienced

Why is stateful application more suitable for Docker Container than stateless?

A stateless application is more suitable for Docker container than a stateful application because in a stateless application we can clearly separate application code (in form of image) and its configurable variables. So, we can create a separate container for development, integration and production environment. This promotes reuse and scalability.

How does Docker view foreground and background containers?

Docker does not distinguish between foreground and background containers. For Docker all containers are the same and run in the same way.

Can you stop the SIGKILL signal?

No, SIGKILL cannot be intercepted, and will terminate the container with brute force and outputs its container id on the console.

What are the two types of registries used in Docker?

The two types of registry used in Docker system are Public Registry and Private Registry. Docker’s public registry is called Docker hub where you can store millions of images. You can also build a private registry for your in-premise use.

What is the preferred way of removing containers - ‘docker rm -f’ or ‘docker stop’ then followed by a ‘docker rm’?

The best and the preferred way of removing containers from Docker is to use the ‘docker stop’, as it will allow sending a SIG_HUP signal to its recipients giving them the time that is required to perform all the finalization and cleanup tasks. Once this activity is completed, we can then comfortably remove the container using the ‘docker rm’ command from Docker and thereby updating the docker registry as well.

If you are a product manager of Docker, what enhancements would you pick for Docker in your product roadmap?

I would pick the following option in increasing order of priority

1. Provision of native storage option.
2. Build mechanism for automatic rescheduling of inactive nodes.
3. Building a robust native monitoring system.
4. Easy to use automatic horizontal scaling set up.

What is the significance of scratch image in Docker?

It is a totally empty image used for building new images from scratch.

Is there a possibility that a container can restart all by itself in Docker?

To answer this question blatantly, No, it is not possible. The default –restart flag is set to never restart on its own. If you want to tweak this, then you may give it a try.

Can you remove a paused container from Docker?

To answer this question blatantly, No, it is not possible to remove a container from Docker that is just paused. It is a must that a container should be in the stopped state, before it can be removed from the Docker container.

What are the various states that a Docker container can be in at any given point in time?

There are four states that a Docker container can be in, at any given point in time. Those states are as given as follows:

• Running
• Paused
• Restarting
• Exited

What are the differences between the ‘docker run’ and the ‘docker create’?

The most important difference that can be noted is that, by using the ‘docker create’ command we can create a Docker container in the Stopped state. We can also provide it with an ID that can be stored for later usages as well.
This can be achieved by using the command ‘docker run’ with the option –cidfile FILE_NAME as like this:
‘docker run –cidfile FILE_NAME’

Is there a possibility to include specific code with COPY/ADD or a volume?

This can be easily achieved by adding either the COPY or the ADD directives in your docker file. This will count to be useful if you want to move your code along with any of your Docker images, for example, sending your code an environment up the ladder – Development environment to the Staging environment or from the Staging environment to the Production environment.

Having said that, you might come across situations where you’ll need to use both approaches. You can have the image include the code using a COPY, and use a volume in your Compose file to include the code from the host during development. The volume overrides the directory contents of the image.

How do we create a new image from an existing image when we already know that a docker image is read-only?

We cannot change an already existing image directly. We first create a new container using the image, and then we make the required changes in the container. Thereafter, we transform the changes into a new layer. We then create a new image by stacking the new layer on top of the old image.

What is the difference between copy on write and regular copy with respect to docker image?

Copy on write or COW is a mechanism to share and copy files to maximize efficiency. Each docker image is a set of read only layers with a thin read write layer at the top of the image stack. So for a file placed at the lower layer in the image stack, the layer (including the writable layer) lying above it, if it needs read access to it, it just uses the existing file. Whenever another layer needs to modify the file (when building the image or running the container), the file is copied into that layer and modified. This minimizes input/output flow and reduces the size of each of the subsequent layers.

Can two docker images share layers?

Yes. Two docker images share layers thus optimizing disk usage, reducing disk input-output time and reducing memory usage.

What does -ti option tell Docker?

The ‘-t’ options tell Docker to allocate a terminal to this container and ‘-i’ tells it to connect stdin to the terminal.

How do I run multiple copies of a Compose file on the same host?

Docker’s compose makes use of the Project name to create unique identifiers for all of the project’s containers and resources. In order to run multiple copies of the same project, you will need to set a custom project name using the –p command-line option or you could use the COMPOSE_PROJECT_NAME environment variable for this purpose.

What, in your opinion, is the most exciting potential use for Docker?

The most exciting potential use of Docker that I can think of is its build pipeline. Most of the Docker professionals are seen using hyper-scaling with containers, and indeed get a lot of containers on the host that it actually runs on. These are also known to be blatantly fast. Most of the development – test build pipeline is completely automated using the Docker framework.

Do I lose my data when the Docker container exits?

There is no loss of data when any of your Docker containers exits as any of the data that your application writes to the disk in order to preserve it. This will be done until the container is explicitly deleted. The file system for the Docker container persists even after the Docker container is halted.

Does Docker supports IPv6?

Yes, Docker does supports IPv6. However IPv6 networking is only supported on Docker daemons running on Linux hosts.Support for IPv6 address has been there since Docker Engine 1.5 release.
To enable IPv6 support in the Docker daemon, you need to edit/etc/docker/daemon.json and set the ipv6 key to true.
{
"ipv6": true
}
Ensure that you reload the Docker configuration file.
$ systemctl reload docker
You can now create networks with the –ipv6 flag and assign containers IPv6 addresses using the –ip6 flag.

Is it possible to run multiple process inside a single Docker container?

Yes, you can run multiple processes inside Docker container however this approach is discouraged for most use cases.It is generally recommended that you separate areas of concern by using one service per container. For maximum efficiency and isolation, each container should address one specific area of concern. However, if you need to run multiple services within a single container, you can try using tools like Supervisor.
Supervisor is a moderately heavy-weight approach that requires you to package supervisord and its configuration in your image (or base your image on one that includes supervisord), along with the different applications it manages. Then you start supervisord, which manages your processes for you.

How does communication happen between Docker client and Docker daemon?

The communication between Docker client and Docker daemon happens with the help of the combination of TCP, Rest API, and Socket.IO.

How do Docker daemon and the Docker client communicate with each other?

You use a combination of Rest API, socket.IO, and TCP to facilitate communication.

Which is the best method for removing a container: the command “stop container” followed by the command “remove the container,” the rm command by itself?

Stop the container first, then remove it. Here’s how:

* $ docker stop <coontainer_id>
* $ docker rm -f <container_id>

Is it okay to run Compose in production?

Yes, as per our experience, using docker-compose in production is among its top applications. In the process of defining applications with compose, you can use it in various stages of production such as CI, testing, staging, etc.

Is it good if you run stateful applications over Docker?

The concept of statement applications says that their data gets stored on the local file system. So, when you move the application to another device, it will become difficult for you to retrieve data. So, we do not recommend running stateful applications here.

How do I run multiple copies of Compose file on the same host?

Compose uses the project name which allows you to create unique identifiers for all of a project’s containers and other resources. To run multiple copies of a project, set a custom project name using the -a command-line option or using COMPOSE_PROJECT_NAME environment variable.

What is the purpose of Docker_Host?

It contains container, images, and Docker daemon. It offers a complete environment to execute and run your application.

What are the three components of Docker Architecture

* Client
* Docker-Host
* Registry

What command should be run to view all the running Docker containers?

To view all the running containers in Docker, we can use the following:

$ docker ps.

Can a container get automatically restart?

By default, the flag restart remains false. So, it is not possible for a container to automatically restart.

Explain basic Docker usage workflow.

Everything starts with the Dockerfile. The Dockerfile is the source code of the Image.
Once the Dockerfile is created, you build it to create the image of the container. The image is just the "compiled version" of the "source code" which is the Dockerfile.

Once you have the image of the container, you should redistribute it using the registry. The registry is like a git repository -- you can push and pull images.

Next, you can use the image to run containers. A running container is very similar, in many aspects, to a virtual machine (but without the hypervisor).

Explain Docker Trusted Registry?

Docker Trusted Registry is the enterprise-grade image storage toll for Docker. You should install it after your firewall so that you can securely manage the Docker images you use in your applications.

Have you used Kubernetes? If you have, which one would you prefer amongst Docker and Kubernetes?

Be very honest in such questions. If you have used Kubernetes, talk about your experience with Kubernetes and Docker Swarm. Point out the key areas where you thought docker swarm was more efficient and vice versa. Have a look at this blog for understanding differences between Docker and Kubernetes.

You Docker interview questions are not just limited to the workarounds of docker but also other similar tools. Hence be prepared with tools/technologies that give Docker competition. One such example is Kubernetes.

What changes are expected in your docker compose file while moving it to production?

These are the following changes you need make to your compose file before migrating your application to the production environment:

* Remove volume bindings, so the code stays inside the container and cannot be changed from outside the container.
* Binding to different ports on the host.
* Specify a restart policy
* Add extra services like log aggregator

How to configure the default logging driver under Docker?

To configure the Docker daemon to default to a specific logging driver. You need to set the value of log-driver to the name of the logging drive the daemon.jason.fie.

Is it a good practice to run Docker compose in production?

Yes, using docker compose in production is the best practical application of docker compose. When you define applications with compose, you can use this compose definition in various production stages like CI, staging, testing, etc.

How will you monitor Docker in production?

Docker provides functionalities like docker stats and docker events to monitor docker in production. Docker stats provides CPU and memory usage of the container. Docker events provide information about the activities taking place in the docker daemon.

Suppose you have an application that has many dependant services. Will docker compose wait for the current container to be ready to move to the running of the next service?

The answer is yes. Docker compose always runs in the dependency order. These dependencies are specifications like depends_on, links, volumes_from, etc.

What are a different kind of volume mount types available in Docker?

Bind mounts- It can be stored anywhere on the host system

Is it a good practice to run stateful applications on Docker?

The concept behind stateful applications is that they store their data onto the local file system. You need to decide to move the application to another machine, retrieving data becomes painful. I honestly would not prefer running stateful applications on Docker.

How many containers can run per host?

There can be as many containers as you wish per host. Docker does not put any restrictions on it. But you need to consider every container needs storage space, CPU and memory which the hardware needs to support. You also need to consider the application size. Containers are considered to be lightweight but very dependant on the host OS.

Is it better to directly remove the container using the rm command or stop the container followed by remove container?

Its always better to stop the container and then remove it using the remove command.

$ docker stop <coontainer_id>
$ docker rm -f <container_id>

Stopping the container and then removing it will allow sending SIG_HUP signal to recipients. This will ensure that all the containers have enough time to clean up their tasks. This method is considered a good practice, avoiding unwanted errors.

Can a container restart by itself?

No, it’s not possible for a container to restart by itself. By default the flag -restart is set to false.

Can you remove a paused container from Docker?

The answer is no. You cannot remove a paused container. The container has to be in the stopped state before it can be removed.

Is there a way to identify the status of a Docker container?

There are six possible states a container can be at any given point – Created, Running, Paused, Restarting, Exited, Dead.

Use the following command to check for docker state at any given point:

$ docker ps

The above command lists down only running containers by default. To look for all containers, use the following command:

$ docker ps -a

What platforms does docker run on?

This is a very straightforward question but can get tricky. Do some company research before going for the interview and find out how the company is using Docker. Make sure you mention the platform company is using in this answer.

Docker runs on various Linux administration:

<> Ubuntu 12.04, 13.04 et al
<> Fedora 19/20+
<> RHEL 6.5+
<> CentOS 6+
<> Gentoo
<> ArchLinux
<> openSUSE 12.3+
<> CRUX 3.0+

It can also be used in production with Cloud platforms with the following services:

<> Amazon EC2
<> Amazon ECS
<> Google Compute Engine
<> Microsoft Azure
<> Rackspace

How far do Docker containers scale? Are there any requirements for the same?

Large web deployments like Google and Twitter and platform providers such as Heroku and dotCloud, all run on container technology. Containers can be scaled to hundreds of thousands or even millions of them running in parallel. Talking about requirements, containers require the memory and the OS at all the times and a way to use this memory efficiently when scaled.

Describe the lifecycle of Docker Container?

The different stages of the docker container from the start of creating it to its end are called the docker container life cycle.


The most important stages are:

<> Created: This is the state where the container has just been created new but not started yet.
<> Running: In this state, the container would be running with all its associated processes.
<> Paused: This state happens when the running container has been paused.
<> Stopped: This state happens when the running container has been stopped.
<> Deleted: In this, the container is in a dead state.

How many containers you can run in docker and what are the factors influencing this limit?

There is no clearly defined limit to the number of containers that can be run within docker. But it all depends on the limitations - more specifically hardware restrictions. The size of the app and the CPU resources available are 2 important factors influencing this limit. In case your application is not very big and you have abundant CPU resources, then we can run a huge number of containers.

Search
R4R Team
R4R provides Docker Freshers questions and answers (Docker Interview Questions and Answers) .The questions on R4R.in website is done by expert team! Mock Tests and Practice Papers for prepare yourself.. Mock Tests, Practice Papers,Docker Interview Questions for Experienced,Docker Freshers & Experienced Interview Questions and Answers,Docker Objetive choice questions and answers,Docker Multiple choice questions and answers,Docker objective, Docker questions , Docker answers,Docker MCQs questions and answers Java, C ,C++, ASP, ASP.net C# ,Struts ,Questions & Answer, Struts2, Ajax, Hibernate, Swing ,JSP , Servlet, J2EE ,Core Java ,Stping, VC++, HTML, DHTML, JAVASCRIPT, VB ,CSS, interview ,questions, and answers, for,experienced, and fresher R4r provides Python,General knowledge(GK),Computer,PHP,SQL,Java,JSP,Android,CSS,Hibernate,Servlets,Spring etc Interview tips for Freshers and Experienced for Docker fresher interview questions ,Docker Experienced interview questions,Docker fresher interview questions and answers ,Docker Experienced interview questions and answers,tricky Docker queries for interview pdf,complex Docker for practice with answers,Docker for practice with answers You can search job and get offer latters by studing r4r.in .learn in easy ways .