Building a Docker Media Server – Hardware Selection

Windows Server 2016 Essentials

Having just finished and published an extensive guide to Windows Server 2016 Essentials (Using Windows Server 2016 Essentials) I have a spare server ready and will to be extended with media serving duties! I built this PC using the Fractal Design Define R5 Case – a large tower that’s more suited to being tucked away under a desk or in a media closet (with appropriate ventilation, of course) than being out on show near the TV! (As an original Windows Media Center guy, it reminds me of the old HP and Dell beta PCs that Microsoft used to send me for testing).

On the plus side, the case can accommodate any motherboard you care to throw at it, has tonnes of space for air circulation and supports up to eight 3.5″ hard drives. If you’re looking to build a beast of a media server, you can fit a lot of kit on the Define R5.

Under the hood, I’m mostly sticking with consumer components, although I know there are users out there that prefer to power their media servers with Intel Xeon CPUs and ECC RAM. This server is powered by an Intel Core i5-4570S which runs at 2.9 GHz (up to 3.6 GHz boost) which delivers an average Passmark CPU score of 6649. A TDP of 65W isn’t the most frugal, but there’s plenty of firepower if needed.

There’s 16 GB RAM in support and as my one concession to the world of Enterprise servers, I’m running four 6 TB WD Red NAS hard drives in a hardware RAID configuration. They’re controlled by an LSI MegaRAID SAS 9260-8i RAID Controller that I picked up on eBay. It’s a pricier option than a software RAID solution such as Storage Spaces, but there’s better performance and reliability too.

I should say at this point that, at the time of writing, Windows Server 2016 Essentials isn’t going to be a great option for a Docker media server. There’s an important distinction between Docker on Windows Server 2016 and desktop editions of Windows such as Windows 10, that you should be aware of.

When you run Docker Engine on Windows 10, you have the ability to run so called “Linux Containers” on Windows. That is, native Linux applications that have been packaged into Docker containers for running on other operating systems. Alongside Linux containers, Windows 10 Pro also supports “Windows Containers” – you guessed it, native Windows applications packaged for Docker. In this guide, we’ll be working predominately with Linux containers, as most media server apps are available for Linux.

It’s early days for Docker on Windows Server 2016, however and, at the time of writing, the platform will only support the running of Windows Containers – as stated by Microsoft, “Windows Containers run Windows executables compiled for the Windows Server kernel and userland (either windowsservercore or nanoserver)”. That rules out running any images from the official Docker repository – you’ll probably have to build your own. As such, Windows 10 is currently a more convenient option for running Docker media server containers that Windows Server 2016 Essentials.

For completeness, I’ll walk through the installation steps for Docker on Windows Server 2016 Essentials. As mentioned here, there’s a plan to allow the Windows 10 Docker Engine to install on Windows Server – once that lands, it’ll be a different story but, for now, if you’re a Windows guy, I’d recommend that you use Windows 10 for now. Talking of which…

Windows 10 Pro

I’m sure that the majority of readers here will be interested in running Docker on Windows 10 Pro, given its familiarity and flexibility when it comes to hardware builds. My Windows 10 Pro rig is housed in the excellent Fractal Design Node 304 PC Case, which balances a compact footprint with support for up to six 3.5″ hard drives.


This particular PC is powered by an Intel Core i5-4590 CPU which runs at (a relatively hot) 3.3 GHz (Passmark 7204). These fourth generation “Haswell” processors can certainly shift, but an 84W TDP (Thermal Design Power) means that they’re not the most power efficient. Modern equivalents (such as the Kaby Lake Intel Core i5-7500) will offer better performance (Passmark 8137) at a lower TDP (65W) with strong media processing features.

Windows 10 Pro is installed on a 120 GB SSD, for fast startup and shutdown times while I’ve also installed three 3 TB WD RedNAS hard drives in a RAID 5 array for media library storage. They’re managed through Intel Rapid Storage Technology (supported on many motherboards) with a spare capacity of 6 TB (3 TB are reserved for redundancy). In support, there’s 16 GB RAM, so while the CPU is a few generations old I’m anticipating that this PC will perform well.

MacOS Sierra

I know there will be some of you that, through preference or necessity, will need to pair media server applications with everyday computing duties. For that reason, I’ll use an iMac for our MacOS Sierra walkthroughs.

While you may feel an iMac is a curious choice for a media server – let me assure you, it probably is – the lack of internal storage in this all-in-one is a problem across the Mac range. As I discuss at length in my OS X Server guides, if you’re serious about using a Mac for your media server, at some point you’ll need to upgrade yor setup with a storage enclosure. I use the excellent OWC Thunderbay 4 four-bay enclosure which offers a high-speed Thunderbolt 2 connection to the Mac. RAID 5 support is then enabled via SoftRAID. iMac, Mac mini, hey even a MacBook if you’re so inclined – they’ll all benefit from the additional storage capacity.


This particular iMac is actually getting pretty old (mid-2013) but is equipped with a quad-core Intel Core i5-4570R (Haswell), running at 2.7 GHz, so has plenty of horsepower when needed (exemplified by a Passmark CPU score of 6619). 16 GB RAM on board should ensure there’s plenty of headroom for containers and while storage is tight for a large media library (a 500 GB SSD is the sole hard drive), I can easily extend capacity with that OWC enclosure.


As an experiment to see just how far back I can go, I’ve also prepared an older (mid-2010) Mac Mini with MacOS Sierra. From a form factor perspective, the Mac Mini (with suitable storage expansion) probably makes better sense than an iMac. This aging model runs on a 2.4 GHz Intel Core2Duo (P8600, Passmark CPU score 1545) with 4 GB RAM. I’m not expecting fireworks, but it’ll be interesting to see how successful a repurposed Mac could work with Docker.


For our Linux PC, I’ll be using one of this year’s new Intel NUC models, the NUC6CAYH. This is a small footprint PC that arrives mostly pre-assembled. You simply need to install your own RAM and 2.5″ storage (in most cases an SSD, although mechanical SATA drives are also compatible for those that need additional capacity).


This new model is powered by a quad-core Intel Celeron J3455 CPU (Apollo Lake) which runs at a base frequency of 1.5 GHz and a burst speed up to 2.3 GHz. A 10W TDP ensures low running costs, but the NUC still retains impressive media processing capabilities. They include hardware decoding of H.264 and HEVC video at 4k resolution/60 Hz refresh rate. There’s 10-bit HEVC video decoding and 8-bit VP9 hardware decoding is also included.

The NUC6CAYH supports up to 8 GB DDR3 RAM which should be sufficient for most, if not all of our needs. Obviously, the major drawback of such a small form factor is storage capacity although the maximum capacity of 2.5″ hard drives is growing all the time. Seagate has recently announced a 5 TB 2.5″ hard drive, the $209 BarraCuda ST5000, which is 15mm high (so not an option for Intel NUCs sadly, but may well work in other small form factor PCs). A 2 TB option, the BarraCuda ST2000LM015, is just 7mm thick and provides a decent amount of storage for all but the largest media libraries. It’s priced at just $84.99.

The Intel NUC6CAYH is a great example of a hybrid media server/HTPC. I’ll be installing either Debian or Ubuntu on this PC (I wish to do some testing before settling on the OS – Ubuntu is more commonly supported on Intel NUC) but if you were seeking a Windows option you could just as easily install a copy of Windows 10 Pro. Update: A few people are recommending UnRAID too, which I’ll definitely take a look at. The $220 Intel NUC Kit NUC6CAYS (note the last letter of the model name is different) looks like a great budget contender, but isn’t going to work with Docker as it only has Windows 10 Home preinstalled with 2 GB RAM and 32 GB eMMC Storage.

So, the NUC6CAYH is going to be a better option for us. I’m still waiting for it to hit the market, but the kit is expected to be priced around $160. Obviously you’ll need to add another $200 or so for storage and RAM. For more powerful options, check out the $295 Intel BOXNUC7I3BNH NUC Kit which is powered by the new Intel Core i3-7100U (Kaby Lake) CPU with up to 32 GB DDR4 RAM support. Dig around and you should be able to find older Intel Core i5 and even Core i7 variants.

While I’m waiting for the NUC6CAYH to hit the market, I’ll be working with the Intel Core i3 (Skylake) NUC6i3SYK which lacks some of the more advanced media features of the new generation models (such as HDMI 2.0 and 10-bit HEVC decoding) but will be fine as a test device in the short term.


As mentioned, QNAP’s QTS operating system offers support for Docker containers through the company’s Container Station package. We’ll be using the QNAP TVS-682 NAS in this guide to build out our media server applications. It’s a six-bay device offering four 3.5″ hard drive bays and a further two 2.5″ bays for 2.5″ SSDs. But we’re not done yet! There’s also twin internal M.2 storage slots that support 2242/2260/2280/22110 SATA 6Gb/s SSD modules.

It’s available with a choice of the Intel Pentium G4400 (Skylake) 3.3 GHz dual-core processor or a more powerful Intel Core i3-6100 (Skylake) 3.7 GHz dual-core processor.  In terms of performance, the Intel Pentium G4400 may be a budget CPU, but it delivers an average Passmark score of 3619, which should be fine for Plex transcoding. To compare, the Intel Core i3-6100 has an average Passmark CPU Score of 5453, so should allow multiple simultaneous transcodes.

We’re using the latter in this guide, with 8 GB RAM installed. However, should you need to expand the RAM, you can fit a maximum of 64 GB across the four DIMM slots – that’s more than sufficient for any media server!


Priced at $1,299 for the Intel Core i3 model, the TVS-682 is definitely no budget media server, but should provide strong performance and expandability that’ll last for years to come.

Synology DSM

For our Synology test rig, the guys over at Synology North America kindly sent over their DiskStation DS916+ NAS. It’s a compact, four-bay device that’s predominately designed for small business, but makes for an decent mid-range media server.


It’s powered by a quad-core Intel Pentium N3710 (Braswell) which runs at 1.6 GHz, with a burst rate up to 2.56 GHz. The speed may sound lowish, but the quad-core architecture really gives the NAS a boost when it’s needed. The average CPU PassMark for the Pentium N3710 is 1874, so I’m expecting to see the device struggle with transcoding in Plex Media Server. However, the CPU is equipped with Intel Quick Sync Video for hardware-assisted transcoding, so you can expect better transcoding performance with Emby and indeed Synology’s native Video Station application. Hardware transcoding supports H.264 (AVC), H.265 (HEVC), MPEG-2 and VC-1; maximum resolution: 4K (4096 x 2160); maximum frame rate per second (FPS): 30.

The DS916+ ships in 2 GB and 8 GB RAM configurations – I’ll be using the latter to ensure there’s plenty of headroom for our containers. I’ll also be taking advantage of the latest DSM 6.1 software, which is currently at the release candidate stage, with a final version due soon.

Add a range of storage management options plus simple expandability and you have a great-looking media server. Check out the full specs for the Synology DiskStation DS916+.

So, that’s my hardware selection for this series. As I mentioned, it’s not necessarily a recommendation for the perfect Docker Media Server, but I hope the varied selection of form factors and specifications provides interesting reading going forward.

Join me in Part 3 of the series when we get Docker installed on this kit.


Leave a Reply