# Installation on Windows

{% hint style="warning" %}
Support for Windows 10 is experimental, due to limited CUDA/GPU support.
{% endhint %}

{% hint style="info" %}
**Setup Support 🤝**

We are happy to help you with setting up Celantur Container. Please contact your sales representative.
{% endhint %}

It is possible to run Celantur Container on Windows with WSL (Windows Subsystem for Linux). NVIDIA provides an [official documentation](https://docs.nvidia.com/cuda/wsl-user-guide/index.html#getting-started) to set up the software dependencies.

Please make sure your system fulfills the requirements:

{% content-ref url="requirements" %}
[requirements](https://doc.celantur.com/container/requirements-and-installation/requirements)
{% endcontent-ref %}

**Alternatively**, you can [install Windows and Ubuntu](https://opensource.com/article/18/5/dual-boot-linux) on a separate partition on the same machine:

1. Create a [bootable USB](https://ubuntu.com/tutorials/create-a-usb-stick-on-windows#1-overview) or [bootable DVD](https://ubuntu.com/tutorials/burn-a-dvd-on-windows#1-overview)
2. Follow the [official step-by-step installation tutorial](https://ubuntu.com/tutorials/install-ubuntu-desktop#1-overview)

## Steps

### 1. Install Nvidia driver

Install the newest version of  [Nvidia Driver](https://www.nvidia.com/Download/index.aspx) for your GPU.

### 2. Install Windows Subsystem for Linux

Install [Windows Subsystem for Linux (WSL 2)](https://docs.microsoft.com/en-us/windows/wsl/install) with `wsl --install -d Ubuntu`.

If you receive following error `Wsl/InstallDistro/Service/RegisterDistro/CreateVm/HCS/HCS_E_SERVICE_NOT_AVAILABLE`, you need to enable virtualisation in command line with:

```sh
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
dism.exe /online /enable-feature /featurename:Microsoft-Hyper-V-All /all /norestart
```

On Windows 10, you might need to [update the Linux kernel](https://learn.microsoft.com/en-us/windows/wsl/install-manual#step-4---download-the-linux-kernel-update-package).

Check that you can access the NVIDIA driver *from within WSL 2* by opening WSL and entering `nvidia-smi`. You should see detailled information about the GPU.

### 3. Install Docker Desktop

Install [Docker Desktop on Windows](https://docs.docker.com/desktop/setup/install/windows-install/).

**Activate** Docker WSL 2 integration, by checking "Use WSL 2 based engine" in the settings.

<figure><img src="https://1992407480-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fr2aH3h1rP4SjkhFlr7Mp%2Fuploads%2FjqnD93FFc8t4tVXnPN4X%2Fimage.png?alt=media&#x26;token=d7618063-1909-47cc-9c60-c0865b65a95e" alt=""><figcaption><p><strong>Activate</strong> Docker WSL 2 integration, by checking "Use WSL 2 based engine" in the settings.</p></figcaption></figure>

### 4. Install Nvidia Container Runtime

Install [NVIDIA Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html) within WSL. (Start WSL with `wsl`)

```bash
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
    sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
    sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
```

### 5. Restart Docker

Click "Restart Docker..." in the context menu of the Docker icon in your taskbar's notification area.

### 6. Test CUDA container

Test that the setup is correct by running:

```bash
docker run --rm --gpus all nvidia/cuda:12.8.1-base-ubuntu22.04 nvidia-smi
```

## Deploy Celantur Container

Please refer to [#deploy-celantur-container](https://doc.celantur.com/container/installation-on-linux#deploy-celantur-container "mention") in our Linux section. The Windows deployment process is the same for Linux.

### Troubleshooting: CUDA is not available.

If you receive "ERROR: CUDA ist not available!", upgrading the Docker engine might resolve it.  &#x20;
