BLOG

Docker Series: What hardware?

If you’re planning to run a “heavy” application like Docker to develop for Business Central (or NAV), it’s useful to know what hardware to have. Here’s an overview of what you need to get it running fast enough to be comfortable:

Docker Desktop

  • 4 (or more) core CPU;
  • 16 GB RAM;
  • At least a 200 GB disk, preferably SSD;
  • Fast internet connection;
  • Windows 10 Professional or better, fully up to date.

Docker Enterprise on a VPS

Virtual Private Servers (or other cloud-hosted systems) are the way to go, unless you’re a hardware-nerd and/or speedfreak-on-a-budget like me. You’ll fiddle less and be more productive. If you go this route, aim for:

  • 4 virtual cores, add if you need more power;
  • 16GB RAM (12GB might suffice in Windows 2019 if you don’t install the GUI);
  • 250 GB SSD storage;
  • A lot of traffic at no or little additional cost (because downloading images, updates, etc. uses a LOT of data);
  • Windows Server 2019 Standard or Datacenter;

Docker Enterprise on “bare metal”

It’s also possible to use a physical computer to install Docker Enterprise. In this case, there’s another choice to make: Install your server OS “bare metal” or virtualize. I decided to run Windows Server 2019 on a VMWare ESX host, because I also wanted to install a Linux SQL server on the same machine, and it’s easy to copy/backup/move the VMs, but you don’t have to.

Bare metal, I’d stick with something like this:

  • 4 (or more) core CPU;
  • 16 GB RAM (12GB might suffice in Windows 2019 if you don’t install the GUI) ;
  • At least a 250 GB disk, preferably SSD;
  • Fast internet connection;
  • Windows Server 2019 Standard or Datacenter (2016 will also work, but has some disadvantages);

Docker Enterprise on a VM host

First things first: I’m assuming you’re building a test machine here. Powerful like a true server, at a fraction of the price. If you’re looking for a production machine, I’d look at either Azure, or – if you’re really anti-cloud – a pre-built server from a renowned supplier.

If you’re virtualizing, there are some things to watch out for. Scroll down for those tips, let’s start with your shopping list;

  • A CPU with 6 cores or more is comfortable. AMD built a very powerful desktop CPU called Ryzen; I run an 8 core Ryzen 7 2700. If you need more, they go up to 32 cores (64 threads) for very reasonable money, and with power usage that’s similar on idle to the mentioned 8-core.
  • 32 GB of RAM. Or more. You’re not virtualizing to run one VM, are you?
  • ECC RAM might be useful, even on a test machine.
  • One small SSD to boot, at least a 500 GB SSD for VMs, including your Docker VM.
  • You’ll need a video card to go with the Ryzens. Most don’t carry on-chip video (unless the number is suffixed with “G”).
  • Dual 1 GBit network cards* or more.
  • Windows Server 2019 Standard or Datacenter.

If you still have to choose a virtualizing platform and you want to run it free, there are at least four options. My (biased) advice:

  • You’ll probably want to use Hyper-V or VMWare ESXi. Both have advantages and disadvantages, both are very good;
  • Biggest disadvantage of Hyper-V Server 2019 in my opinion is there’s quite a bit of PowerShell-fiddling to be done before you can actually control it with Hyper-V Manager. ESXi was easier to setup, and has a very nice web manager. If you’re using Hyper-V outside of a domain, it might be useful to only open up RDP and install ProHVM.
  • (*) Biggest disadvantage of ESXi is it’s lack of driver support. If you have even slightly exotic hardware, you will probably have to download a driver from the manufacturer, decompile that, fiddle with the included text files, get an ESXi image, add the driver, compile, blabla, drink a beer while standing on your head and praying to Cronos, and switch it on and off again before it works. For network cards: Forget 10 GBit and Realtek, stick with Intel chipsets. Also, check the VMWare Compatibility Guide.
  • Linux-fans will probably look up my street address and spray my house with graffiti for this: For Windows Server environments – especially with Docker + Windows containers – I’d stay away from (pure) KVM and Xen. Yes, it works, but I’ve seen more than one specialist have issues that were very hard to diagnose, and with that combination, Google is certainly not your friend.

Windows Server on a VM – which version?

If you’re setting up a test machine, go with 2019 Standard:

  • 2016 has some important differences which might still cause issues when you’re trying to run containers on a virtualized host;
  • 2019 Essentials is nice for running basic functionality in a small business, but misses the Containers feature, and therefor cannot be used for Docker.

Any questions?

Let me know!

Other Posts