When you start getting into deploying your application, chances are you ran into a thing called: Docker. You then ask yourself: “What is Docker?”, and we begin to investigate the question. In this post, I will outline simply put: “What is Docker?” and where to look to get started on your project.
What is it? Why should I care about it?
Let’s have a scenario, you have built your new MERN application, and now you are looking to deploy it. Docker is a software platform that simplifies the process of building, running, maintaining, and distributing your software. It does this by building and deploying containers running your application’s image.
What is a docker image? What does it do?
A docker image contains the code, tools, dependencies, OS, etc. (everything your code needs to run). A image is a standalone executable package of everything you need to run the application. You can then deploy this to a container, which runs on a virtual software layer above the operating system level.
So is a container like a VM?
No, a VM virtualizes an entire machine down to the hardware layers, while a containers only virtualize software layers above the operating system level. They are quite different, yet similar. If you have specific hardware requirements or working on one hardware platform such as Windows, then you should use a VM. If you have software requirements only, such as a web application, then you can meet the requirements with a container.
Where to Get Started
Now that you understand that docker helps you deploy your applications on the host operating system using docker using containerized applications, if you want to use Docker to deploy your application rather instead just using the “old way”, then I recommend you get started with Docker’s documentation. They have videos and lots of documentation that is constantly evolving to support your needs.
Comment below with your experience in Docker, or even resources that helped you in learning it.