Jellyfin with nvidia hardware acceleration gives an error on compose

Hello and my thanks to everyone at LSIO for everything they do!

Here is my docker compose:

  jellyfin:
    image: lscr.io/linuxserver/jellyfin:latest
    container_name: jellyfin
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=America/Vancouver
      - NVIDIA_VISIBLE_DEVICES=all
    volumes:
      - ./dockerdata/jellyfin/config:/config
      - /media/TV:/data/TV
      - /media/Movies:/data/Movies
    runtime: nvidia  
    ports:
      - 8096:8096
      - 8920:8920 #optional
      - 7359:7359/udp #optional
      - 1900:1900/udp #optional
    restart: unless-stopped

I run the build with the command:
docker compose up -d --build

The output is

 ⠋ Container jellyfin        Creating                                                                                       0.0s 
Error response from daemon: unknown or invalid runtime name: nvidia

I am running this on a 64-bit Ubuntu 22.04.5 with the NVIDIA driver metapackage from nividia-driver-535 (proprietary). I have a NVIDIA 1660 Super card.

The Nvidia Container Toolkit is installed at version 1.17.3 according to the instructions including the Configuration and Rootless mode sections and I have modified the /etc/nvidia-container-runtime/config.html file to “no-cgroups = false”. This change allowed me to run:

name@UBUNTU:$ sudo docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi
Sun Jan  5 02:40:21 2025       
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.183.01             Driver Version: 535.183.01   CUDA Version: 12.2     |
|-----------------------------------------+----------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |         Memory-Usage | GPU-Util  Compute M. |
|                                         |                      |               MIG M. |
|=========================================+======================+======================|
|   0  NVIDIA GeForce GTX 1660 ...    Off | 00000000:07:00.0  On |                  N/A |
|  0%   40C    P8              14W / 130W |    931MiB /  6144MiB |      2%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+
                                                                                         
+---------------------------------------------------------------------------------------+
| Processes:                                                                            |
|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
|        ID   ID                                                             Usage      |
|=======================================================================================|
+---------------------------------------------------------------------------------------+

The daemon.json files all have the nvidia runtime section ($HOME/.docker, $HOME/.config/docker and :


    "experimental": false,
    "runtimes": {
        "nvidia": {
            "args": [],
            "path": "nvidia-container-runtime"
        }
    }

Docker compose is version 2.31.0-desktop.2, while ‘docker version’ gives me


Client: Docker Engine - Community
 Version:           27.4.1
 API version:       1.47
 Go version:        go1.22.10
 Git commit:        b9d17ea
 Built:             Tue Dec 17 15:45:42 2024
 OS/Arch:           linux/amd64
 Context:           desktop-linux

Server: Docker Desktop 4.37.1 (178610)
 Engine:
  Version:          27.4.0
  API version:      1.47 (minimum version 1.24)
  Go version:       go1.22.10
  Git commit:       92a8393
  Built:            Sat Dec  7 10:38:57 2024
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.7.21
  GitCommit:        472731909fa34bd7bc9c087e4c27943f9835f111
 runc:
  Version:          1.1.13
  GitCommit:        v1.1.13-0-g58aa920
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

Docker is installed via APT, not Snap. Docker Desktop is also the latest version, installed from the .deb file.

I have also installed the nvidia-decode-535 and nvidia-encode-535 packages. I have done many daemon restarts and reboots.

I have followed all the instructions to the letter and still get this message.

Next, I’m going to try just using the run command, but that is clearly not ideal. However the run command seems to work when I pulled up the nvidia-smi information with the nvidia runtime. Maybe I am wording it wrong in the compose file? Maybe compose doesn’t work with the nvidia runtime? I have tried using the official Jellyfin docker image and get the same message.

If that doesn’t work, I may just try to bump up the drivers to 550. If that doesn’t work, I may just start over and bump Ubuntu up to 24.04 and get a fresh start.

Thanks for any help!

so I ran it with command line instead of a compose file and got the same runtime error

However, when I ran the basic docker run command to get nvidia-smi information, I don’t get the runtime error. Ubuntu just fed me a kernel update and I’ll try that. Then upgrade nvidia drivers to 550

I have run a clean install of Ubuntu 22.04 which defaulted to the 550 drivers. The compose command gives an error message, but I tried using “sudo” in front and it worked without error. Something about running the compose build as a regular user is the problem.

you likely just need to follow the tip for Receiving errors when trying to run without root? of the install guide, but using sudo to run docker commands is fairly typical
Ubuntu | Docker Docs

I didn’t see that section in the install guide, but I appreciated your comment about sudo usage being typical. I have gone that route and learned about portainer to view and manage those containers. Docker Desktop handles my non-root containers.

Thanks!

As a note, we do not support or recommend portainer as it causes problems for non-experts. We also do not recommend or support docker desktop because it uses a vm layer that introduces numerous issues. Our supported deployment methods are listed in our container readme.