What is Docker

What is Docker?

Docker is a platform as a Service (PaaS) that utilizes operating-level virtualization to deliver software in a container construct. A container can be thought of as what is needed to run that specific application that you want to containerize, with all the binaries and libraries needed for that specific application to function. You might be asking, well, how is that different from a virtual machine? When I set up a VM, am I not doing the same thing? Let’s look at what a VM looks like next to a container.

On the surface, they look very similar, and one is running binaries and libraries on Docker vs. running them inside the guest operating system. Docker makes deploying a piece of software very easy.  To get started:

Application Testing in a non-containerized world

  • Setting up a hypervisor, like
    • ESXi
    • KVM
    • VMWare Fusion
  • Install a flavor of Linux
  • Ensuring you have the dependencies installed for the application you want to run
  • Installing the application.  The most significant difference between the two is that Docker has the concept of a container. That container is the bare minimum of what you need to work with that software.  For instance, if you want a container for NodeJS, the container has the software and dependencies for NodeJS to run. The container will use the host that Docker is running on for resources and access to system files. I went through much trial and error when installing the unfamiliar software. I found that I was troubleshooting the installation versus configuring and/or learning about the software I wanted to use most of the time. Now, when I want to try out something new or if I need to work with an older version of the software, Docker is my first stop.

More information about Docker can be found on the Docker website here.