Running Jellyfin server with Docker offers several benefits, in my opinion, compared to a classic install. First of all, it’s lightweight and consumes very few resources that will be better used for transcoding, and overall makes it easier to migrate and keep your software updated (or rollback if necessary).
On the other hand, Docker can be more complicated to wrap your head around for beginners, in that case you should just download and install the software and call it a day.
Read Also: How to setup Jellyfin Server for dummies (streamingetc.)

To install Jellyfin Media Server on Docker, follow these steps:
- Make sure you have Docker installed on your system. If not, you can download and install Docker from the official website.
- Open a terminal or command prompt and run the following command to pull the Jellyfin image from Docker Hub:
bash docker pull jellyfin/jellyfin
- Create the directories: (I created them in the user directory)
cd ~
mkdir jellyfin
cd jellyfin
mkdir config
mkdir cache
- Make sure you have the path to your media, hard drive, or network drive. It needs to be mounted.
Read Also: How to Mount Windows Share on Linux via CIFS (PhoenixNAP)
- Once the image is downloaded, you can create a new Docker container by running the following command:
docker run -d --volume ~/jellyfin/config:/config --volume ~/jellyfin/cache:/cache --volume /path/to/media:/media --net=bridge --restart=unless-stopped jellyfin/jellyfin
- Alternatively, you can use the docker-compose command. Create a file called docker-compose.yml
nano docker-compose.yml
with the following content: (adjust if necessary but it’s pretty generic and should work in most cases)
version: '2.2'
services:
jellyfin:
image: jellyfin/jellyfin:latest
container_name: jellyfin
network_mode: 'bridge'
ports:
- 8096:8096
volumes:
- ~/jellyfin/config:/config
- ~/jellyfin/cache:/cache
- type: bind
source: /path/to/media
target: /media
read_only: true
restart: 'unless-stopped'
save the file and run the command:
docker-compose up -d
- Access Jellyfin Media Server with a web browser:
- from the server: http://localhost:8096
- from another machine on the local network: {server ip}:8096 (check the port forwarding option in the settings or at the install)
- External Network: you need to forward the port with your home router if it allows you to do so.
You can now set up and configure Jellyfin (see our guide below) to start streaming your media content. That’s it! You have successfully installed Jellyfin Media Server on Docker.