As I mentioned in the introduction to this series, Docker containers can run on a wide variety of host operating systems, including Windows, MacOS, Linux and popular NAS devices (notably QNAP and Synology). So there’s a lot of flexibility available when we get to the stage of installing the Docker Engine (the runtime software that builds and runs your media applications). But before we get to that stage, we really should consider our media server hardware.
For some, this may be a very simple choice. You may only have one PC or NAS device available, and that’s what you’re going with. However, if you’re going to build or acquire new hardware for your media server, some research will be required. Even if you have your hardware planned out and/or acquired, reading through this section of the guide will help you understand how your media server may perform – or, if you need to make some tweaks.
If you’re thinking about using an off the shelf NAS device (rather than building your own PC), then you’ll definitely need to take a step back and consider your needs before wading through the plethora of devices available. But, before we get too specific, let’s talk more broadly about media server hardware.
Build or Buy?
If you’re seeking an easy life then you can’t beat a retail PC or NAS device. The hardware is configured and controlled; an operating system has been installed and you can plug in, switch on and get going with Docker installation straight away. But before you rush out (or online) to pick up that fancy new device, you should really spend some time thinking about its internal specification.
Building your own rig allows you (forces you, actually) to carefully think through your needs and ensures you get to configure your media server exactly as you want. But even if you’re going to buy off the shelf, this really is a vital exercise.
Ignore what anyone says – there is no set blueprint that constitutes the “perfect” media server. There is only your perfect media server. You may lust after an eight-bay, monolithic “beast”; a tiny, low-powered, single-drive system; a home theater PC case that will sit beautifully under the TV, or something in between. All of these options are possible, but you may not get them from mainstream PC vendors like HP and Dell. Smaller footprint devices are certainly available from Apple or NAS vendors like QNAP and Synology – but you’ll need to be confident these (mostly) pre-configured devices have the internal horsepower you need for your media server containers.
You can most certainly build your favoured hardware yourself. If you’re happy to host your media server on Windows or a desktop Linux platform, there are thousands, if not millions of components on the market to help you build and configure your media server hardware exactly as you want it. In a world of increasingly closed systems (why, hello there, Apple), celebrate the open PC architecture and go crazy with designing your own kick-ass media server!
Understanding Your Media Server Hardware and Operating System Requirements
If you’ve already spent time planning your media server, you’ll have a rough idea of what you need. Now it’s time to get into the nitty gritty. Yes, you’re going to need a bunch of components that, when thrown into a box and jiggled around a bit, are going to be powerful enough to comfortably run:
- Your host operating system
- The Docker Engine
- One or more Docker containers with your favoured media apps
- Supporting drivers for add-on hardware (such as a TV tuner, network tuner and so on)
There are no specific minimum hardware requirements for Docker Engine, but the software only runs on relatively modern versions of host operating systems. In turn, those operating systems will have minimum hardware requirements, which help inform the baseline.
Let’s run down the list:
|Windows||Microsoft Windows 10 Professional or Enterprise 64-bit.|
|Windows Server||Windows Server 2016 Essentials, Standard, and Datacenter Editions.|
|Apple macOS||Apple macOS Yosemite 10.10.3 or above|
|Linux||Arch Linux, CentOS 7 (64-bit), CRUX Linux, Debian (64-bit edition of Jesse 8.0 [LTS] or Wheezy 7.7 [LTS], Fedora (64-bit editions of Fedora 24 or 25), Gentoo, Oracle Linux 6 or 7 (64-bit), Red Hat Enterprise Linux 7 (64-bit), OpenSuSE Leap 42.x and SUSE Linux Enterprise 12.x (64-bit), Ubuntu (Yakkety 16.10, Xenial 16.04 (LTS), Trusty 14.04 [LTS]|
If you’re running an older version of any of these desktop operating systems, you may find that Docker Toolbox offers compatibility, but that’s out of scope for this guide.
If you’re thinking of running Docker on a NAS system, you’ll need to download and install a dedicated add-on package from the Package Center (Synology) or use QNAP’s Container Station app. These supporting apps are only compatible with a subset of the two company’s devices. The list includes:
Synology offers reasonably extensive support for Docker across their range of ARM and x86 NAS devices. For the uninitiated, ARM and x86 are competing processor architectures. To generalise, ARM CPUs offer lower power consmption but deliver lower performance, while x86 CPUs draw more power but offer better performance. This is a generalisation, though.
As we’ll discuss shortly, however, I’d recommend going with an x86 model for better media serving performance – particularly where transcoding is required.
|17-series:||FS3017, RS4017xs+, RS18017xs+, RS3617xs+, RS3617xs, RS3617RPxs, DS3617xs|
|16-series:||RS18016xs+, RS2416+, RS2416RP+, DS916+, DS716+II, DS716+, DS216+II, DS216+|
|15-series:||RC18015xs+, DS3615xs, DS2415+, DS1815+, DS1515+, RS815+, RS815RP+, DS415+|
|14-series:||RS3614xs+, RS3614xs, RS3614RPxs, RS2414+, RS2414RP+, RS814+, RS814RP+|
|13-series:||DS2413+, RS10613xs+, RS3413xs+, DS1813+, DS1513+, DS713+|
|12-series:||DS3612xs, RS3412xs, RS3412RPxs, RS2212+, RS2212RP+, DS1812+, DS1512+, RS812+, RS812RP+, DS412+, DS712+|
|11-series:||DS3611xs, DS2411+, RS3411xs, RS3411RPxs, RS2211+, RS2211RP+, DS1511+, DS411+II, DS411+|
|*10-series:||DS1010+, RS810+, RS810RP+, DS710+|
|x86-based CPU||TS-x51, TS-x51+, TS-x51A, TS-x53, TS-x53A, TS/TVS-x63, TVS-x70, TVS-x71, TS/SS-x79, TS/TVS-x80 and TVS-x82 series|
|ARM-based CPU||TS-531P, TS-x31+ series with a minimum of 1GB RAM|
So, if you’re looking to run Docker on a NAS, there’s one constraint to be aware of. But I did say that you need your hardware to comfortably run Docker as well as a bunch of app containers. Ultimately, the more containers you wish to run, the more powerful your hardware will need to be. For basic media serving duties, you could be fine with reasonably humble hardware – an ARM CPU and 2 GB RAM will support a simple media server no problem.
But if you think you’ll need you media server to perform more heavy duty tasks – such as real-time transcoding, then you’re going to boost those specs. I’d like to talk through some general advice regarding processor and RAM selection before talking through the hardware I’ll be using in this series.