Our Docker Captains interview series continues

Docker vs. VM: What’s the difference?

Hartmut Schlosser
© Shutterstock / Julia Waller

Docker is revolutionizing IT — you’re probably hearing this phrase quite often. But let’s go deeper into “the belly of the Docker beast”: What are the differences between Docker and a virtual machine? What is hype and where does the real added value lie? We talked with Ajeet Singh Raina about all this and more.

Docker manages to insert itself into all our conversations — why? Because it is extremely helpful and everyone loves it. There’s a lot going on in the Docker world (for example, the Docker platform and Moby Project are now integrating support for Kubernetes) but this is not why we’re doing this interview series with Docker Captains.

We’d like to hear more about their love stories with Docker, their likes and dislikes, their battle scars and more. Without further ado, we’d like to introduce Ajeet Singh Raina, Docker Captain & {code} Catalysts by DellEMC.


JAXenter: Can you tell us a little bit about your first contact with Docker? Was it love at first sight?

Ajeet Singh Raina: My first contact with Docker happened way back (in March 2013, to be more exact) when I was watching a YouTube video in which Solomon Hykes, the founder and CEO of dotCloud showcased Docker to a group of around 30-40 developers for the first time outside the dotCloud office at Python Developers Conference in Santa Clara, California. dotCloud was using Docker as a low-level piece to run the dotCloud business and group of 30-40 Python developers were curious to get access to it. Within a few days, they open-sourced it and the rest is the history.

Even more compelling was the first Docker image I built out of one of Dell System Management tool which I showcased to my peers — that aroused kind of interest on the office floor. Truly speaking, it was love at first sight.

Docker has revolutionalized the way we ship, build and run our application ranging from small IoT device like Raspberry Pi, laptop, workstation, mainframes to diversified Cloud Platform.

JAXenter: Docker is revolutionizing IT — that is what we read and hear very often. Do you think this is true? If we were to look beyond the hype, what’s so disruptive about Docker technology?

Ajeet Singh Raina: How many times have you encountered CPU/Memory/Resource error while you install Temple Run or any kind of application on your mobile device? I never heard anyone complaining about it.

I think the same thing is happening in the server world. Irrespective of what language you are using to develop your application on whichever platform, all you do is package the application and run it seamlessly across the multiple environments. Docker has revolutionalized the way we ship, build and run our application ranging from small IoT device like Raspberry Pi, laptop, workstation, mainframes to diversified Cloud Platform.

Be it big data analytics, application frameworks, application infrastructure, application services, databases, messaging services, monitoring, operating systems, programming languages, deep learning, security, storage, DevOps tools, etc. —you name it. You will surely find a tremendous amount of interest around implementations with Docker containers.

JAXenter: How is Docker different from a normal virtual machine?

Ajeet Singh Raina: Docker is a container-based technology and containers are just user space of the operating system. At a low level, a container is just a set of processes that are isolated from the rest of the system, running from a distinct image that provides all files necessary to support the processes. It is built for running applications. In Docker, the containers running share the host OS kernel.

Virtual Machine, on the other hand, is not based on container technology but they consist of user space plus kernel space of an operating system. Under VMs, server hardware is virtualised. Each VM has operating system(OS) & apps. It shares hardware resource from host.

VMs & Docker — they each come with benefits and demerits. Under VM environment, each workload needs a complete OS. But with container environment, multiple workloads run with 1 OS. Larger the OS footprint. There are further benefits like reduced IT management resources, reduced size of snapshots, quicker spinning up apps, reduced & simplified security updates, less code to transfer, migrate and upload workloads.

JAXenter: How do you use Docker in your daily work? 

Ajeet Singh Raina: At DellEMC, I work as Sr. Systems Development Engineer and spend a considerable amount of time playing around with datacenter solutions. Hardly a day goes by without talking about Docker and its implementation. Be it a system management tool, test certification, validation effort or automation workflow, my team and I look at how Docker can simplify the solution and save enormous time of execution. Being part of Global Solution Engineering, one can find me talking about the possible proof of concepts around datacenter solution and finding the better way to improve our day to day job.

SEE ALSO: Docker Captains interview series — “Docker doesn’t want to be replaced as the container runtime of choice”

Also, wearing a Docker Captain’s hat, there is a sense of responsibility to help the community users, hence I spend most of the time keeping a close eye on Slack community questions/discussions and contributing in terms of blog posts almost every week.

JAXenter: What issues do you experience when working with Docker? What are the current challenges?

Ajeet Singh Raina: In the last three years, I have been closely monitoring Docker community forums, Slack channel and new releases. Rather than talk about issues when working with Docker, I would say I spend a considerable amount of time listening to community users, their pain points and then try to work with Docker Team to help them with solution. As Docker Captains, we have the responsibility to fight around the challenges rather than build noise around it.

To answer your second question, ever-continuing movement towards standarization, fragmented ecosystem, inability to integrate unikernels and delay in integrating Infinit for persistent storage are a few of the current challenges which Docker really need to focus on.

JAXenter: Talking about the evolution of the Docker ecosystem: How do you comment on Docker’s decision to donate containerd runtime to CNCF?

Ajeet Singh Raina: I firmly believe that every decision thought leaders make based on what the community needs should be respected as they are the only horse power for future innovation.This is good for the container market as a whole. To me, it is full of excitement as we are going to see Docker containerd competiting with CRI-O without affecting Docker’s business.

JAXenter: Is there a special feature you would like to see in one of the next Docker releases?

Ajeet Singh Raina: Using LinuxKit & Moby to build production-Ready Docker Swarm Mode for Enterprise IT is going to be one powerful and promising offering from Docker. Inc in near future. Also, Docker integration with Infinit for storage persistent is the most awaited feature which I would love to see in coming Docker releases.

JAXenter: Could you share one of your favorite tips when using Docker?

Ajeet Singh Raina: Generally docker service inspect <service-name> outputs a huge JSON dump. It becomes quite easy to access individual properties using Docker Service Inspection Filtering & Template Engine.

For example, if you want to list out the port which WordPress is using for specific service:
$docker service inspect -f '{{with index .Spec.EndpointSpec.Ports 0}}{{.TargetPort}}{{end}}' wordpressapp



This will fetch just the port number out of huge JSON dump. Amazing, isn’t it?

Thank you!

Hartmut Schlosser
Content strategist, editor, storyteller - as online team lead at S&S Media, Hartmut is always on the lookout for the story behind the news. #java #eclipse #devops #machinelearning #seo Creative content campaigns that touch the reader make him smile. @hschlosser

Inline Feedbacks
View all comments