It is not uncommon for me to jump back and forth between software. Be it with Linux distributions (Solus is my current favorite), blogging engines (Ghost for most of my sites) or the software I use to run my server.
Up to now, I have always done it this way, that I installed the individual programs I have (like Ghost for a blog) directly in the server system (Ubuntu 16.04 LTS). But now I've gone over to putting all my efforts into Docker.
Docker literally saves my life.
Although there is always a lot of effort involved in moving between systems, such as moving from direct installation to Docker or from WordPress to Ghost, I always try to look at it in the long run. It may take me a whole day to find all the right images and create containers, but in the long run it can save me a lot of time. For example, when there are updates or I want to add a new service. This gives me more time to spend on productive things.
But Docker also makes a lot of sense from safety and security aspects. For example, I can now start a single database container for each page instead of doing everything with one user in a local installation. If there is a security vulnerability in one of the pages and the database is hacked, at most one of my pages is compromised, but not all of them.
I don't really have an idea how exactly Docker works inside, let alone have I discovered all the functions, but I'm already sure that I will use servers with containers (whether it's Docker or an alternative) whenever possible and useful. Not only does it simplify my life in many ways (from installing services to moving to another server), it also opens up completely new possibilities.
If I want to try a program (such as a wiki software) only once to get an impression of how it feels, this is a question of a few minutes and even if I don't like it, I can remove it from my system without any problems. Gone are the days when hundreds of libraries have to be installed and the whole file system is stuffed with configuration and log files. Gone are the days when you can't install different programs at the same time because they don't get along on one system.
Try it yourself!
One of the reasons why I haven't tried all this with Docker before was because I was so overwhelmed by the whole theory. I had heard about this container thing and Docker, but because it seemed so complicated, I never really intended to try it out. If only I had known...
Admittedly, now that I may have learned the minimal basics, I have to say that Docker does indeed have a rather steep learning curve. Every tutorial wants to explain an even more complicated thing and at some point you don't get through.
But since I've always been a fan of learning-by-doing and also think that trying out is sometimes the simplest and most effective way to acquire new skills and knowledge, I've made my way sometime after I didn't want to go through the whole theory any more, and just happened to hit the Play with Docker page where, as the name suggests, you can play with Docker.
Although the console still offers the most possibilities, I recommend (as a beginner to beginners) to use Portainer to create and manage containers, images and volumes. It is completely open source and provides a nice graphical interface to take away some complexity from the whole docker administration.
I will continue to familiarize myself with the whole docker topic and maybe I will tell you about my further experiences 😉.
Subscribe to Dev All The Things
Get the latest posts delivered right to your inbox