Sunday, 21 February 2016

Docker Interview Questions

What is Docker

Docker is a platform to run each application isolated and securely. Internally it achieves it by using kernel containerization feature.

What is the advantage of Docker over hypervisors?

Docker is light weight and more efficient in terms of resource uses because it uses the host underlying kernel rather than creating its own hypervisor. 

What is Docker Image

Docker Image is the source of the docker container. In other words, docker images are used to create containers. It is possible create multiple isolated containers from a single image.

What is Docker Container

Docker Container is the instantiation of docker image. In other words, it is the run time instance of images. Images are set of files whereas containers is the one who run the image inside isolated.

Difference between Docker Image and container?

Docker container is the runtime instance of docker image.
Docker Image doesnot have a state and its state never changes as it is just set of files whereas docker container has its execution state.

Update: The second series of Docker Interview Questions is out.  Here is the link: Docker Interview Questions - Part II.

Saturday, 6 February 2016

Docker Interview Questions and Answers

Hello friends, as you have requested for more interview questions with answers on Docker, here are the follow-up of second part series.

How do you create docker image?

Docker image are created using Docker file. Docker build is command to create docker image out of docker file

So you have the docker image, what is the next step?

With docker image, we can spawn as many containers as needed. All containers can be same instance or it can also be different instance, what I mean that if we are using the same command for creating multiple containers, all container will behave as same. However, if you choose different command to create container out of same image, it will provide different functionality altogether.

How to create docker container?

We can create docker container by running this command
docker run -t -i <image name> <command name>
This will create and start the container

How to know the container status?

Just fire docker ps -a to list out all running container with stauts (running or stopped) on a host

How to stop and restart the container?

To stop container, we can use docker stop <container id>
To start a stopped container, docker start <container id> is the command
To restart a running container, docker restart <container id>

That's all for Part II series of Docker Interview Questions. I will keep posting more question in next series with more depth analysis.

Monday, 1 February 2016

Jenkins Interview Questions and Answers

Jenkins is one of the tools for continuous integration and these days more applications are using Jenkins for automated integration. Here are few important questions and answers on Jenkins.

1. What is Jenkins?

Jenkins is an open source application for continuous integration and continuous delivery of application software.

2. What is Continuous Integration?

Typically, there are multiple developers writing code for a single application, so we need to perform integration test by integrating each new piece of code via testing it through as many tests as possible. This practice is called continuous Integration. Jenkins besides Hudson, Bamboo etc provides tools for continuous integration.

3. Tell me few advantages of Jenkins?

Here are some advantages of using Jenkins (or by any matter any integration tools) :-

(a) It saves developer time: 

The foremost advantage of using Jenkins is that since most of the integration task is being handled by Jenkins (via automatic integration), the developer time is focused on development activities mostly.

(b) Improved software quality

Since the software is being tested immediately after any code check-in, it keeps the quality check frequently, thus improving overall software quality.

(c) Faster Delivery

Jenkins automatically does continuous integration, which leads to very early detection of bugs / defects and hence it leads to faster delivery of software.

(d) Decreased development time

Since most of the integration work is automated by Jenkins, it leads to the faster development of application.

(e) Easily portable: 

Since Jenkins is developed using Java, it can be easily portable to other platforms.

(f) Early tracking of defects: 

Jenkins helps tacking of defects at very early stage in development environment only rather than production environment.

(g) Email Notification to developers: 

Jenkins can be easily integrated with LDAP server, so developer are notified about build success / failure via mail.

4. What are the commands to start Jenkins manually?

<jenkins_url>/restart :  Force restart (will not wait for ongoing build to complete)
<jenkins_url>/safeRestart : Wait for all builds to complete before restarting.

5. Mention few plugins of Jenkins?

Here are some plugins that can be used with Jenkins:

  • Delivery Pipeline
  • Join Plugin
  • Copy Artifact 
  • Git 
  • Android Emulator 
  • Cobertura 
  • Email-ext 
  • Docker 
  • Amazon EC2
  • Openstack Cloud
  • CloudBees Folders

6. What are the two most important components Jenkins is integrated with?

Jenkins is integrated with these two components mainly:
(a) Version Control System like SVN, GIT
(b) Build tools like Maven

That's all for some important questions and answers on Jenkins. I will add more questions and answers later.