Do You Need to Be a Linux Wizard to Use Docker as a Developer?
Docker puts you into a great position to manage the full life cycle of your applications, which could naturally lead to being a sys admin.
No, you definitely don’t need be a Linux wizard to start using Docker but learning Linux isn’t necessarily a bad thing. It’s a natural progression for most web developers.
If you want to start taking control over your app’s entire life cycle you will end up learning the basics of Linux simply because if you plan to deploy your apps onto a Linux server, you have to learn it.
So while Docker isn’t putting a gun to your head to learn Linux, it is making it so easy to deploy your own applications that you will end up being proficient with Linux in the end.
Now, don’t get me wrong. Docker doesn’t force you to manage your application from development to production. You can still stay behind the developer wall and let someone else deal with deploying – and if you do that, Docker will still be wildly useful for you.
# Docker for Development
Think about what it was like before Docker. I recently wrote an article on that which explains the build, run and ship process without Docker. I won’t repeat it here, but check it out.
The short version is, you have to at the very least become a system administrator of your own development box. For example, if you are on MacOS, you have to learn how to install your favorite programming languages and databases on MacOS.
And that is part of the reason why deploying your application is so hard right?. You have to learn a completely new operating system to deploy your apps onto a Linux server.
That can be a daunting task even for a seasoned developer.
Of course, you have other options too like using Heroku, but you’re getting severely priced gouged if you go down that route. In some cases you might be paying a 10x premium to use Heroku.
I once helped a client save $2,100 / month on their hosting bill by performing a small tweak to their application’s infrastructure architecture. That wasn’t Heroku related (it was AWS related), but my point is that getting more comfortable on the deploy side of things is a huge win.
If you like the idea of deploying the apps you build then Docker will help you immensely.
# Stop Being a System Administrator for Dev and Prod
With Docker, you can just be a system administrator because the configuration needed to run your applications in development and production end up being the same.
What if you spent your time just slowly mastering Linux instead of fumbling around with trying to get your applications to run on your development box without the assistance of Docker?
By the way, you can still use MacOS or Windows in development, but instead of figuring out “how do I install XYZ on MacOS”, you can leverage Docker’s wide array of official Docker images. Just about all of them are based on Linux, but they run just fine on MacOS and Windows too (thanks to Docker).
You’ll find Docker images for just about every popular programming language and service. Ruby, NodeJS, Python, PostgreSQL, nginx, Elasticsearch, etc.. It’s all there waiting for you to use for free.
The best part about it is, you can start using them right away without being a Linux god. All of the neckbeard-level Linux knowledge is already baked into those pre-made Docker images.
When it comes to making your own Docker images for your own applications you can ease into things slowly and there’s plenty of examples to look at. You’ll surely have an easier time doing that than trying to set up your development environment on MacOS or Windows.
How comfortable are you with Linux right now?