How to Install 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.