How to install storagenode on Windows Server 2016

What should I do , I am using Windows Server 2016 and I do not have the Docker Desktop.

1 Like

What version of docker are you using?
docker version

Also try to search on “start” typing “docker”

The last update of the docker desktop makes impossible to run a Docker desktop CE on Windows Server platform. You have three options:

  • Use the Docker desktop EE (users reports that it doesn’t work too - you need to contact the Docker support );
  • Use the old version of the Docker desktop and never update it, but it’s a security risk and potential problems in the future;
  • Install a Linux in VM on Hyper-V, since the Docker desktop used the Linux VM anyway. I can recommend to install the Debian 9 or Ubuntu Server LTS

Seems only working solution is a Linux VM.

2 Likes

I was able to get a Storagenode installation on Windows Server 2019 to the point where it starts booting. The problem I encountered was that the DB engine requires memory mapped file access, which is not available with NTFS or ReFS as underlying storage. If it were possible to make an ext3/ext4 partition available under Windows Server and then mount this partition to the Storagenode container, I believe it would work well.

To make Docker and Storagenode work together on Windows Server 2019, follow the instructions in this article: https://computingforgeeks.com/how-to-run-docker-containers-on-windows-server-2019/. The section “Running Linux Containers on Windows Server 2019” shows exact steps that worked well for me.

If you able to run a Linux container on the Windows 2019, and the only problem is a filesystem, then you can create a docker volume for the storage and never remove it.

Alexey, the core issue is that the DB engine uses memory-mapped file IO. This is not supported with standard mounts under docker. I think I would need a VHDX formatted to ext3/ext4. However, the problem I don’t know how to solve is how to mount this VHDX into the Linux container.

The Docker for Windows uses a Linux VM to run a Linux containers. The only way which they can map the disk to the container is using the SMB share.
So, it’s compatible with a storagenode, at least it is working fine on Windows, except some problems with the network. But those problems can be easily solved by restarting the docker from the Docker desktop application.
Regarding volumes. You can create a docker volume and use it as a storage. This volume will be created inside the Linux VM, so you should adjust the size of its disk via Docker desktop application.

But I think it’s much easier to install the Linux VM with needed storage and use it directly without intermediate of Docker desktop application.