Spiria logo.

Docker as an outstanding learning and evaluation environment

February 24, 2022.

Docker makes for a great learning environment. Its disruptive impact on other technologies became clear to me as soon as I set to learning it. Docker puts these tools within easy reach so that, given a decent grasp of the Docker ecosystem (Docker Hub, CLI, Dockerfile, Compose files), a world of mainly open-source IT opens up for anyone wanting to try it out, to learn and to evaluate it. Stress testing is safe because the container’s sandbox environment prevents any harm to the host system. If you break it, just delete the container and start over!

The Docker Hub database projects that first struck me were PostgreSQL, MySQL, MongoDB… And then there were the devops tool: Jenkins, SonarQube, Maven, etc., which I had heard of so often. Then, the programming languages: GCC, Golang, Rust,Julia. Linux distros, web frameworks, analytics… you name it. The list of dockerized technology is long.
 
Each project through Docker Hub follows the same pattern: multiple versions, basic commands, a link to the source project web site, a configuration to get the user started, and warnings where applicable.
 
The projects have a single point of configuration and a single persistent data location on the host drive, usually set up as a volume outside the container. This addresses some issues that plagued legacy systems, such as configuration parameters spread across multiple locations (registry, env vars, ini, xml, json files) and db parameters. This is such an improvement. It makes it a lot easier to learn the configurations and eases the adoption curve.
 
Comparing two configurations or versions of the same framework on the same host used to be nearly impossible. Now, it can be done. One dockerfile/docker-compose per configuration, a couple of port numbers, and a volume location change – that’s all you need!
 
You get the point, right?
 
The benefit of this normalized ecosystem is that anyone can quickly learn a tool. It won’t make you an expert, but with the tutorials and digital courses available on the web, you will become proficient. This will accelerate the learning curve of dockerized-technology.
 
Docker seems to privilege open-source projects, as these clearly outnumber the proprietary software on Docker Hub. I suspect software providers have already flagged this, given the number of proprietary software images that have started to appear on the hub. This will put pressure on cloud providers to integrate Docker containers in their service offer. Sure, some cloud providers already offer some form of support, but is this support as easy to use as Docker itself?
 
Docker might come across as not always suitable for production, mainly for security reasons. Docker dev team would do well to address those concerns and to simplify its security configurations. 
 
Docker’s didactic qualities make it the platform to successfully deliver a technology — especially an open source one — to the public.