Why I Finally Took the Plunge
For a long time, I wondered whether Docker was worth learning. I liked the idea of running different applications in their own isolated environments, but because it was unfamiliar territory, I kept postponing it.
That changed after I had to reinstall my NAS yet again. After repeating the same setup process for what felt like the hundredth time, I decided there had to be a better way. So I finally took a closer look at Docker.
Looking back, I can confidently say it was absolutely worth it.
Interestingly, my first real introduction to the concepts behind Docker came during an Azure training course. There, I spent a lot of time working with YAML configuration files to deploy and configure Azure services. To my surprise, Synology Container Manager relies on very similar techniques. Once I realized that, the learning curve suddenly seemed far less intimidating than I had expected.
Deciding What to Run
Before installing anything, I made a simple wishlist of the applications I use most:
- Development tools
- Office applications
- Digital books
This gave me a clear starting point for exploring what could be containerized and managed more easily.
Structure
flowchart LR
NAS[NAS Server]
subgraph Docker Environment
DEV[Development Environment]
OFFICE[Office Applications]
BOOKS[Calibre Library]
end
NAS --> DEV
NAS --> OFFICE
NAS --> BOOKS
DEV --> WP[WordPress Development]
DEV --> NC[Nextcloud Development]
OFFICE --> DOCS[Documents]
OFFICE --> SHEETS[Spreadsheets]
BOOKS --> LIBRARY[Digital Book Collection]
DEV -. Isolated .- OFFICE
OFFICE -. Isolated .- BOOKSA Development Environment That Travels With Me
My first priority was creating a development environment based on Visual Studio Code for building WordPress plugins. Having a consistent development setup makes it much easier to work across systems without constantly reinstalling software.
Read more here:
👉 Building My Development Environment
A logical next step was to use the same environment for developing Nextcloud apps. Fortunately, that only required a few small adjustments, making it easy to support multiple projects from a single setup.
An Office Environment at Home
Another application high on my list was a free office suite. Having access to document editing, spreadsheets, and presentations without additional licensing costs is a huge benefit for home use.
Read more here:
👉 My Home Office Environment
Taking Control of My Digital Library
Over the last thirty years, I have accumulated quite a collection of digital books. Managing that collection efficiently became increasingly important.
Calibre turned out to provide exactly the functionality I was looking for. It helps organize, search, and maintain a large library without losing track of what I own.
Read more here:
👉 My Personal Digital Bookshelf
Why Containers Make Life Easier
The biggest advantage of containers is isolation.
Each application runs independently from the software on my NAS. Applications do not interfere with one another, and problems are usually limited to a single container. In practice, conflicts only occur when I make a mistake in the configuration, such as assigning the wrong network port.
Another major benefit is how easy it is to start over. If I no longer need an application or something goes wrong, I can simply stop and remove the container. Within minutes, I’m back to a clean starting point and can redeploy the application if needed.
Monitoring has become easier as well. I can clearly see how much memory and processing power each container consumes. If an application needs more resources, I can adjust those settings without affecting the rest of the system.
Looking Beyond the NAS
One interesting question remains: what if I applied the same principle on a Windows workstation?
The idea of running applications in isolated environments, keeping systems clean, and simplifying maintenance sounds just as appealing on a desktop as it does on a NAS. That is something I may explore in a future blog post.