Docker vs. VM: What’s the difference?

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.

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.

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?

Hartmut Schlosser is an editor for JAXenter and a specialist in Java Enterprise-Technologies, Eclipse & ALM, Android and Business Technology. Before working at S&S Media he studied Computer Science, Music, Anthropology and French Philology.

Ajeet Singh Raina is a Docker Captain & {code} Catalysts by DellEMC. He is currently working as Technical Lead Engineer in Enterprise Solution Group @ Dell R&D. He has over 9+ years of solid understanding of a diverse range of IT infrastructure, systems management, systems integration and quality assurance. He is among the early adopter of Docker inside Dell, Inc.and have several blogs under his name on containerizing Dell Legacy applications. He is a frequent blogger and has 100+ blogs contributed on new upcoming Docker releases and features. His personal blog http://www.collabnix.com attracts roughly thousands of visitors and tons of page-views every month. His areas of interest includes Docker on Swarm Mode, IoTs, Legacy Applications & Cloud. Find him on Twitter: ajeetraina