All About Docker

It's been about 4 weeks since I learned about Docker (February 2020). Since then, I was consuming posts, sites, instructionals, & blogs about Docker. And it has been a wild (and eye-opening) time.
I had seen posts mentioning Docker, but didn't understand what it was or why I would need to use it. If anything, at the onset, Docker seemed more complicated to me than my paradigm at the time regarding software.
I come from a Windows background, starting with Windows 95. Then grew up through the years to utilize Windows 98, ME, XP, Vista, before settling on Windows 7 for the better part of 8 years & later switching fully to OSX in 2017.
I was accustomed to automated installers for software, though curious about other methods while not really caring about the method as long as it was running.
In February 2020, I saw a few posts in /r/selfhosted regarding Docker and that was where it all began.
Experiencing Docker
Using Docker had two-fold purpose for me.
As someone who self-hosted a suite of various software, I wanted to rid myself of a few that ran via terminal on my Hackintosh home server. I had three programs open at all times in the terminal, both to let it run and to monitor the logs.
I also had on my to-do list for the better part of a year to revamp my wife's business website/portfolio. My options were to use the existing Wordpress hosted site or start up my own using free server software (this started with Ghost and ended with self-hosted Wordpress).
It took me a while to grasp the concept of Docker. For the initial three weeks, I was running commands I didn't understand. Using the boilerplate template commands without even modifying the default code. Nothing was working as I thought & it frustrated the heck out of me. At some points, I was near about throw up my hands & give up. That's when it struck me of the beauty of Docker. I can destroy a container program and recreate it like nothing ever happened.
This was my first successful code (generic copy used):
docker create \
--name=tautulli \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Europe/London \
-p 8181:8181 \
-v <path to data>:/config \
-v <path to plex logs>:/logs \
--restart unless-stopped \
linuxserver/tautulli
This is the docker create command for Tautulli, which is a monitoring software for Plex. Prior, I had installed per standard OSX instructions, which was setup in my Applications directory. Assuming I corrected the settings specific to my setup & the volumes point to the appropriate config files & logs, Tautulli via Docker can be up & running like nothing happened (really any dockerized software).
Embracing Docker
It was like winning 1st place at something. I am not a programmer nor does my dayjob relate anything to development, so this was a big deal. That proverbial light bulb turned on for me.
This led me to branch off into learning more about other aspects related to the docker containers I wanted to use. Ghost blog and various wiki software led me to learn more about markdown language. I spent an absurd amout of time learning more about HTTPS & TLS protocols, reverse proxys, & general website security. I even learned how to setup a VM offsite. None of this was my intention at the time.
At this point (March 2020), I am running nine docker containers on my home server with two hosted VM servers solely running an additional eight docker containers.
It has allowed me to be more open to trying new software without worry it'll break my machine or create a wasteland of deprecated software & conflicts. Overall, I look forward to further refining my utilization of Docker.