The 3 reasons you should learn Docker (2024)

The 3 reasons you should learn Docker (3)

When I was first introduced to Docker, I was very skeptical about spending time learning about yet another new technology. However after a year of learning about this virtualization platform, Docker is one of the most important skills I have learned during my software career.

In my opinion, Docker significantly improves development, deployment, and distribution of software products and platforms.

Development in a cross-platform environment is easier

If you are like me, you love your Mac running OSX. The problem is, most of the code that I deploy runs on Linux based machines. I develop code to run on the cloud or I develop code to run on embedded systems like a Raspberry PI.

However, I can’t give up OSX as my daily use operating system and development environment. Linux just doesn’t cut it for me as a general use operating system. In my opinion, it’s ugly and just doesn’t have all the applications I need to get through my day.

So that’s where Docker comes in. I can develop and run my code on OSX in my local development environment, but when it’s time to run my code on a Linux based platform, almost nothing changes. In fact quite often I would never be able to develop my code on OSX without Docker due to code dependencies, but with Docker we are able to eliminate those issues in many cases.

The same exact Docker image that I build on my OSX machine can run on Linux (assuming the Docker engine is installed of course), ensuring portability. In fact, when you start to use Docker registries, this make deployment seamless; which is my next point.

Deployment of Applications is easier

If you have ever tried to deploy a software application with a large number of software dependencies, you know it can be a very painful process. On a Linux based system, it often involves a lot of apt-get installs for different software projects just to be able to run your code.

With Docker, all of those dependencies are built into the image itself. This means that when you want to deploy your application built into a Docker image, all you need installed on the system itself is Docker plus the image.

This significantly speeds up the deployment process on a new machine, and also simplifies things in general. With tools such as docker compose connected to a Docker registry, you can deploy a system with just a few commands.

Distribution of Your Application is easier

As we mentioned above, using a docker registry, it is very straight forward to deploy an application to a new system assuming you have the Docker image plus the Docker engine installed.

This makes it very easy to distribute your application to others because all you have to do is build a Docker image and upload it to a registry such as DockerHub. I have used this in many cases to deploy applications from other companies or open source projects. Since they have done all of the work to build the image, you can just worry about deploying it on your system.

While I do believe Docker is a fantastic platform and solves many software issues, it doesn’t come without a cost. Often the coding and development has an extra level of complexity, especially if the running image (called a container) must interact with the host operating system.

I will be writing articles about developing with Docker in the coming posts, so keep an eye out for practical articles for how you develop your application with Docker.

Ask me any questions you have about Docker in the comments.

The 3 reasons you should learn Docker (2024)
Top Articles
Latest Posts
Article information

Author: Aracelis Kilback

Last Updated:

Views: 6561

Rating: 4.3 / 5 (44 voted)

Reviews: 83% of readers found this page helpful

Author information

Name: Aracelis Kilback

Birthday: 1994-11-22

Address: Apt. 895 30151 Green Plain, Lake Mariela, RI 98141

Phone: +5992291857476

Job: Legal Officer

Hobby: LARPing, role-playing games, Slacklining, Reading, Inline skating, Brazilian jiu-jitsu, Dance

Introduction: My name is Aracelis Kilback, I am a nice, gentle, agreeable, joyous, attractive, combative, gifted person who loves writing and wants to share my knowledge and understanding with you.