Summary

  • Use Docker and Kubernetes for improved NAS security, separate containers, and app management.
  • Gain more control with updates by manually installing software and deploy the latest versions easily.
  • Explore a vast container app catalog for various software solutions not available in OS app stores.

Installing apps and services on your network-attached storage (NAS) device can be as simple as popping into your OS app store and installing available content. Like your smartphone, apps can be downloaded, managed, and uninstalled in a matter of moments. But this isn't the best way to add functionality to your NAS. Docker and Kubernetes are two technologies that work well together or separately by allowing containerization and the management of apps and resources. They take a little longer to get everything up and running, but here are some reasons that make it worth the effort.

1 Containers improve NAS security

The beauty of using a container for running software is it's more secure than running it through the OS. A container packages up the software and all the required dependencies so the app can run within an environment of its own. This keeps it separate from other containers, as well as the OS. Because of this, you can also run specific versions of software with respective dependencies, which can be handy if you have apps that share dependencies but one works better with another version. By running containers, you can have everything set up without bloating the system.

It wouldn't be good if the container wasn't able to communicate with anything, which is why it's possible to allow containers to use system resources through Docker itself. Containers are separate from the system to a degree, but you can use them through orchestration tools such as Kubernetes to handle multiple containers, replicas, and scaling. Containers aren't completely secure, however, and you will need to be careful when running software on the same system as sensitive data, just as you would downloading apps from one of the NAS brand storefronts.

2 More control with updates

With apps available through NAS OS stores, you're limited to the versions the manufacturer publishes. It may not be the latest version of the app available from the developer with Plex Media Server being a prime example. It's often better to manually install Plex through Synology's DSM store, for example. This includes manually downloading and uploading the latest versions of the app. Running Plex within a Docker container would solve this issue by allowing you to conveniently use the latest version of the software. The same goes for other apps.

And because containers are separate with their own dependencies, you can quickly wipe one clean and start anew without affecting anything else on the system. This makes it much easier to learn Docker, Kubernetes, and other technologies without fearing armageddon. Other people build and maintain container images, so you can quickly deploy and enjoy.

👁 The MicroK8s Dashboard running on Ubuntu
I installed Kubernetes on my old PC - here’s how I did it

Kubernetes is an amazing platform for all your containerization needs, and here's a simple way to repurpose your outdated PC into a MicroK8s machine

3 Vast container app catalog

NAS app stores are great for convenience as you can quickly install any available software with a single click. Where they fall short is not including every available software for deployment. Something seemingly simple such as running Bitwarden on your NAS instead of relying on the company's cloud infrastructure will require a Docker container to be created and launched as the app is not available on any of the major NAS OS storefronts. We have a guide on running Vaultwarden on Synology NAS using Docker and it's not as difficult as you may assume.

With Docker installed, you can add real-time log viewers, media streaming platforms, file browsers, home assistant hubs, programming tools, RSS readers, home security stations, networking monitoring, password managers, and web servers. If you can think of it, there's likely a container for it.

Try Docker and Kubernetes together

There's no right or wrong decision between these two technologies and it can prove better to use them simultaneously. Docker is great for keeping various apps contained within a virtual environment with allocated resources and Kubernetes can take things further by helping you manage containers and keep the NAS running without system slowdown through load balancing "pods". Have a play around with some test containers using Docker and see how Kubernetes can help you scale as resource requirements change.

It's overkill for using a NAS to store files, but Docker and Kubernetes will become your new best friends if you're serious about running a powerful NAS server.