How to Install Radarr in Docker
Automate Your Movie Downloads: A Step-by-Step Guide to Installing Radarr in Docker

If you are like me and love watching movies. However, keeping them organized and up to date can feel like a full-time job. Between release dates, varying quality options, and sources scattered across the internet, managing your movie library can quickly become a frustrating mess.
This is where Radarr comes in. Instead of rummaging through torrent or Usenet sites for that new release or trying to remember when a movie drops digitally, Radarr automates the entire process. It monitors your wanted list, watches for new releases, and grabs them using torrents or Usenet. Once downloaded, it renames, organizes, and moves the files into your media library, ready to watch on Jellyfin, Plex, or Kodi.
Radarr lets you set it and forget it.
Why Radarr Is a Must-Have
Here’s why Radarr is my go-to tool for movie automation:
- Automated Downloads – Add the movie you want, and Radarr will handle the rest. It’ll search for it, download it, and upgrade it when better quality becomes available.
- Missing Movie Search – Radarr continuously scans for movies that are missing or were not available when you added it.
- Integration with Download Clients – Works seamlessly with qBittorrent, Deluge, SABnzbd, and NZBGet.
- Library Management – Organizes downloaded movies into clean folder structures, complete with proper naming and metadata.
Radarr transforms your movie library into a hands-off system that just works.
Why Run Radarr in Docker?
Docker is the one of the best ways to run it. Here’s why:
- Clean Isolation – Keep Radarr and its dependencies separate from your main system.
- Effortless Updates – Updating is as easy as pulling the latest image.
- Portability – Easily move your setup to another machine.
- Simplified Maintenance – Avoid dependency hell and conflicting libraries.
Running Radarr in Docker keeps things clean, organized, and easy to manage, update, and troubleshoot.
If you’re ready to take control of your digital movie collection, setting up Radarr in Docker is the way to go.
Step 1: Install Docker
To get started, you’ll need Docker installed on your server.
Check out this guide for step-by-step instructions: Master the Basics - How to Install Docker on Ubuntu 24.04.
Step 2: Create or Modify Your Docker Compose File
Let’s define your Radarr container using docker-compose.yml
. In this post we will be adding Radarr to our existing docker-compose.yml
that contains the settings for Sonarr.
Post: How to Install Sonarr in Docker
Open the Compose File
Open your existing docker-compose.yml
or create a new one:
nano /docker/docker-compose.yml
Then, copy and paste the Radarr Section:
services:
#################################
## SONARR ##
#################################
sonarr:
# Official LinuxServer.io Sonarr image
image: lscr.io/linuxserver/sonarr:latest
# Sets a custom name for the container
container_name: sonarr
# Name and location of the .env file
env_file: .env
# Ensures the container restarts if it crashes
restart: unless-stopped
ports:
- ${SONARR_PORT}:8989
volumes:
# Stores Sonarr's configuration data (change this path!)
- ${CONFIG_PATH}/sonarr:/config
# Directory where downloaded TV shows are stored
- ${MEDIA_PATH}/Shows:/tv
# Directory where incomplete downloads are stored
- ${DOWNLOADS_PATH}:/downloads
environment:
- PUID=${PUID}
- PGID=${PGID}
- TZ=${TZ}
networks:
# Connects the container to the custom media network
- media_network
#################################
## RADARR ##
#################################
radarr:
# Official LinuxServer.io Radarr image
image: lscr.io/linuxserver/radarr:latest
# Sets a custom name for the container
container_name: radarr
# Name and location of the .env file
env_file: .env
# Ensures the container restarts if it crashes
restart: unless-stopped
ports:
- ${RADARR_PORT}:7878
volumes:
# Stores Radarr's configuration data (change this path!)
- ${CONFIG_PATH}/radarr:/config
# Directory where downloaded Movies are stored
- ${MEDIA_PATH}/Movies:/movies
# Directory where incomplete downloads are stored
- ${DOWNLOADS_PATH}:/downloads
environment:
- PUID=${PUID}
- PGID=${PGID}
- TZ=${TZ}
networks:
# Connects the container to the custom media network
- media_network
#################################
## NETWORK ##
#################################
# Creates an isolated Docker network for media containers
networks:
media_network:
driver: bridge
💡 Tip: Make sure the spacing is correct. YAML is very picky about spacing. The key is that each indent is two spaces not a tab
.
Step 3: Customize the .env File
Open the .env File
nano /docker/.env
The content of the .env file should look like this:
# User and Group ID (Prevents permission issues)
# Main user ID
PUID=1000
# Our media group:
PGID=1001
# Timezone (Ensures correct scheduling and logs)
TZ=America/Denver
# Define Ports (Ports for each container are defined here)
# Maps Radarr’s web UI to port 7878 on the host
RADARR_PORT=7878
# Maps Sonarr’s web UI to port 8989 on the host
SONARR_PORT=8989
# Data Directories (Keeps storage paths centralized)
CONFIG_PATH=/docker
DOWNLOADS_PATH=/media/downloads
MEDIA_PATH=/media
Update the Radarr file paths as needed. Here’s what to change:
-
CONFIG_PATH=/docker
→ Root folder where Docker stores persistent files. -
MEDIA_PATH=/media
→ Root folder for your media files -
DOWNLOADS_PATH=/media/downloads
→ Root folder where your download client stores temp/incomplete files
Make sure the download client container shares access to the /downloads
path.
Also update the timezone (TZ) to match yours.
Refer to: this list of valid timezones.
Step 4: Start Radarr
Bring your new Radarr container online:
docker compose up -d
Check it’s running:
docker ps
You should see radarr
in the list of containers:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c8d2c60a955b lscr.io/linuxserver/sonarr:latest "/init" 54 seconds ago Up 53 seconds 0.0.0.0:8989->8989/tcp, [::]:8989->8989/tcp sonarr
ff12a474a4fe lscr.io/linuxserver/radarr:latest "/init" 54 seconds ago Up 53 seconds 0.0.0.0:7878->7878/tcp, [::]:7878->7878/tcp radarr
Step 5: Fix Permissions (If Needed)
Permissions issues are a common snag with media containers. Here’s how to make sure everything plays nice:
sudo chown -R `yourusername`:media /docker/ && sudo chmod -R 770 /docker/
sudo chown -R `yourusername`:media /media/ && sudo chmod -R 770 /media/
Check out this post if you want to learn more about Linux permissions:
Master the Basics - Linux Permissions
Step 6: Access Radarr
Open your browser and go to:
http://your-server-ip:7878
From there, you can add movies, set quality profiles, and connect your favorite download clients.
For detailed configuration help, check the official Radarr Wiki.
Step 7: Keep Your Docker Software Updated
To updat:
docker compose pull # Fetches the latest image
docker compose down # Stops and removes the running container
docker compose up -d # Starts a fresh container with the new image
Radarr and Sonarr will restart with the latest version, no reconfig needed.
Conclusion
Radarr is an absolute game-changer for movie lovers. It tracks, downloads, upgrades, and organizes your collection automatically. No more hunting for files, renaming, or manually moving stuff around.
Running it in Docker makes everything easier to manage and keeps your system clean. And when you combine it with other tools like Sonarr for TV shows or Lidarr for music, you’re well on your way to a fully automated, self-updating media empire.