Skip to content

Linux

  1. At least 3GB free space for the Neurodesktop base image.
  2. Docker requirements (see Docker install docs).

Install Docker from the Docker install docs. Additional information is available below. Alternatively, Neurodesk also works with Podman.

To set up Neurodesk on Ubuntu, ensure both the Podman client and server are installed. Follow the Podman installation instructions for server setup.

Before the first run, create a local folder where the downloaded applications will be stored, e.g. mkdir ~/neurodesktop-storage.

Choose how you want to run Neurodesktop:

See the Neurodesk App instructions for installing and using the app.

When done processing your data it is important to stop and remove the container, otherwise the next start or container update will give an error (”… The container name ‘/neurodesktop’ is already in use…”).

  1. Click on the terminal from which you ran Neurodesktop.

  2. Press Ctrl+C.

  3. Run:

    Terminal window
    docker stop neurodesktop
  4. Run:

    Terminal window
    docker rm neurodesktop

For general installation instructions, refer to the Docker install docs.

Refer to Docker on CentOS.

One example to install Docker in a yum-based distribution could look like this:

Terminal window
sudo dnf install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo dnf install docker-ce docker-ce-cli containerd.io
# or if dnf not found: sudo yum install docker-ce docker-ce-cli containerd.io
sudo systemctl enable docker
sudo systemctl start docker
sudo docker version
sudo docker info
sudo groupadd docker
sudo usermod -aG docker $USER
sudo chown root:docker /var/run/docker.sock
newgrp docker

Refer to Docker on Ubuntu.

One example to install Docker in an apt-based distribution could look like this:

Terminal window
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
Terminal window
sudo yum install nvidia-container-toolkit -y
Terminal window
sudo apt install nvidia-container-toolkit -y

Running the Neurodesktop container with GPU

Section titled “Running the Neurodesktop container with GPU”
Terminal window
sudo docker run \
--shm-size=1gb -it --privileged --user=root --name neurodesktop \
-v ~/neurodesktop-storage:/neurodesktop-storage \
-e NB_UID="$(id -u)" -e NB_GID="$(id -g)" \
--gpus all \
-p 8888:8888 -e NEURODESKTOP_VERSION=2026-04-28 \
vnmd/neurodesktop:2026-04-28
Terminal window
mamba install tensorflow-gpu
python
import tensorflow as tf
print("Num GPUs Available: ", len(tf.config.list_physical_devices('GPU')))

If TensorFlow can see your GPU, you should see output similar to:

>>> import tensorflow as tf
>>> print("Num GPUs Available: ", len(tf.config.list_physical_devices('GPU')))
2024-01-15 14:22:31.452: I tensorflow/core/platform/cpu_feature_guard.cc:182] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.
2024-01-15 14:22:31.821: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1639] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 22308 MB memory:  -> device: 0, name: NVIDIA GeForce RTX 4090, pci bus id: 0000:01:00.0, compute capability: 8.9
Num GPUs Available:  1
Using TensorFlow (singularity container in Neurodesktop)
Section titled “Using TensorFlow (singularity container in Neurodesktop)”
Terminal window
singularity pull docker://tensorflow/tensorflow:latest-gpu
singularity run --nv tensorflow_latest-gpu.sif
python
import tensorflow as tf
print("Num GPUs Available: ", len(tf.config.list_physical_devices('GPU')))

If the Singularity container can see your GPU, you should see output similar to:

>>> import tensorflow as tf
>>> print("Num GPUs Available: ", len(tf.config.list_physical_devices('GPU')))
2024-01-15 14:25:08.117: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:937] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2024-01-15 14:25:08.184: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1639] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 22308 MB memory:  -> device: 0, name: NVIDIA GeForce RTX 4090, pci bus id: 0000:01:00.0, compute capability: 8.9
Num GPUs Available:  1