Getting started with Docker (Part 1)
If you are like me then your PC is probably based on Windows. Like or not, Windows is the most popular operating system, it has a very large ecosystem of applications and games and therefore I believe that Windows makes the most sense as your primary OS.
It’s a different story however when it comes to developing applications. Unless you are developing platform specific things and you need stuff like Visual studio, then Windows just doesn’t feel right. So what do you do? It’s Docker to the rescue!
What is Docker
Docker is a new container technology, which is kinda similar to VMs but is generally considered to be a lot more lightweight. VMs are based on emulating hardware and therefore require quite a few resources. Containers, however, share one operating systems and don’t need to emulate any hardware. When an application runs from the inside of a Docker container, it has its own file system, storage, CPU, RAM, and so on. The main difference between containers and VMs is that while a virtual machine abstracts an entire device, containers just abstract the operating system kernel.
Why use Docker
We, developers, can use Docker to pack, ship, and run any application as a lightweight, portable, self sufficient container that can run virtually anywhere.
Let’s say that your application need a very specific version of PHP, or MySql or anything actually. You can’t force the sysadmin to install your dependencies, since they may conflict with other requirements or maybe they are unstable or obsolete, and you can’t create a new VM just for you since that would be expensive. By using Docker you can have your very own environment that you can adjust to your needs.
The coolest thing about Docker is that the environment itself becomes a dependency to your application. A dependency that you can manage, version and distribute just like any other dependency.
This is not my idea, but it is most certainly a very cool idea by Antonin Januska and you can read all about it at his blog.
This concludes the first part of the Getting started with Docker post. In the next part I will try to guide you through the process of installing Docker, in Windows nonetheless.