Docker on my NAS

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:

  1. Development tools
  2. Office applications
  3. 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 .- BOOKS
Docker EnvironmentIsolatedIsolatedDevelopment EnvironmentOffice ApplicationsCalibre LibraryNAS ServerWordPress DevelopmentNextcloud DevelopmentDocumentsSpreadsheetsDigital Book Collection

A 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.