Docker is a set of products that uses operating-system-level virtualization to develop and deliver software in packages called containers.

Docker containers run on all modern platforms (Windows 10, Windows Server 2016/2019, macOS 10.12+, Linux kernel 3.10 or higher), and there are various container runtimes available. Docker containers are also supported on basically any cloud host (AWS, Google Cloud, Azure, DigitalOcean, and more).

Docker containers can be based on Windows or Linux. PSPDFKit Server is a Linux-based Docker container. We suggest using a modern Linux-based distribution or a cloud provider to run PSPDFKit Server.

The most common way to run a Docker container is via Docker Engine. Docker Engine is the industry-leading container runtime. Mirantis offers a free community version and a commercial enterprise version. The enterprise version is needed when you’re deploying on Windows and/or if your business requires an SLA support agreement. Contact Mirantis for pricing information.

Learn More: Get started with Docker Machine and a local VM.

Running Docker as a Developer

The simplest way to run Docker during development is via Docker Desktop, which is available for Mac 10.13+ and Windows 10.

Running Docker on Linux

Docker containers are fully supported on Linux. Here’s a guide on how to get started.

If you are using Docker EE, check out the Docker Compatibility Matrix to see if your Linux distribution is supported.

Running Docker in the Cloud

Docker containers are supported by all major cloud providers.

We recommend using Docker Machine, Kubernetes, or native Docker implementations by cloud providers like Amazon Web Services, Google Cloud, or Microsoft Azure for deployment in production.

Running Docker on Windows Server 2016/2019

There currently is no officially supported way to run Linux-based Docker containers on Windows Server 2016/2019. Microsoft is working on WSL 2, which is the tech base for an officially supported way to run Linux-based docker containers on Windows. This should be ready in Q4 2020. Docker Community Edition (CE) requires Microsoft Windows 10 Professional or Enterprise 64-bit. There are various ways to get around this restriction, but we discourage you from using them for anything other than development purposes.

Docker Toolbox has lower system requirements and will work on both Windows Server and consumer Windows versions. Toolbox is primarily a development tool and lacks advanced monitoring for reliable hosting.

Running Docker on Virtualized Windows

If you provide your solution via a Windows virtual machine, you can still run Docker. Docker for Windows (Docker Engine) requires Hyper-V, which is supported by some virtualization products. While Oracle VirtualBox does not support nested virtualization, VMware Workstation and Parallels do support this feature (see this tutorial for information on how to enable Hyper-V on VMware).

If Hyper-V is not available in your setup, you can choose Docker Toolbox, which doesn’t require a hypervisor to run.

Other Technologies

Docker Toolbox is a legacy runtime for older Mac and Windows systems that does not require Hyper-V (Windows) or hypervisor kit (Mac) to run. It uses VirtualBox under the hood, which is slightly slower than the modern Docker Engine. Docker Toolbox runs on Windows Server 2016/2019 and Windows 7/8/8.1/10.

Docker on Windows is a technology that allows Windows Docker containers to run directly on Windows Server 2016/2019 via a Windows container host. This doesn’t run PSPDFKit Server, as it is a Linux Docker container. Microsoft created Hyper-V isolation (LCOW) to run Linux containers on Windows, and it shipped in the Windows 10 Fall Creators Update and in Windows Server 1709.

Starting with Docker Desktop Stable, you can now use WSL 2. WSL 2 is the new Windows Subsystem for Linux that runs an actual Linux kernel and thus offers full Linux compatibility. Docker will use WSL 2 to run containers on it directly, offering higher performance than its Hyper-V counterpart.