DiyMediaServer
Featured image of post Radarr Docker Compose Setup Guide (2026)

Radarr Docker Compose Setup Guide (2026)

Radarr Docker Compose setup on port 7878: working compose file, volume mapping, and connecting to Prowlarr and SABnzbd for automated movie downloads.

💡
Tip: Default port: Radarr runs on port 7878. Access the web UI at http://your-server-ip:7878 once the container is running.

If you love watching movies, you know the drill. Keeping a library organized and current feels like a second job. Release dates slip, quality options multiply, and sources scatter across the internet. Pretty soon your “movie collection” is a folder full of mystery files.

That’s where Radarr comes in. Instead of rummaging through torrent or Usenet sites for a new release, or trying to remember when something drops digitally, Radarr handles it. It watches your wanted list, grabs releases through your torrent or Usenet client, then renames, organizes, and files the result into your media library. Ready to watch on Jellyfin, Plex, or Kodi.

Set it and forget it. That’s the whole pitch.

Why Radarr Is a Must-Have

Here’s why Radarr is my go-to for movie automation:

  • Automated downloads. Add a movie. Radarr searches for it, grabs it, and upgrades to a better release when one shows up.
  • Missing movie search. Radarr keeps scanning for anything missing or unavailable when you first added it.
  • Download client integration. Works with qBittorrent, Deluge, SABnzbd, and NZBGet.
  • Library management. Clean folder structures, proper naming, full metadata.

Radarr turns your movie library into a system that runs itself.

Why Run Radarr in Docker?

Docker is one of the best ways to run it. Here’s why:

  • Clean isolation. Radarr and its dependencies stay separate from your host system.
  • Effortless updates. Pull the latest image. Done.
  • Portability. Move your setup to another machine without rebuilding from scratch.
  • No dependency hell. No conflicting libraries fighting with your other software.

Running Radarr in Docker keeps things tidy, predictable, and easy to troubleshoot when something breaks. And something always breaks eventually.

If you’re ready to take control of your movie collection, this is the way.

Step 1: Install Docker

You’ll need Docker installed on your server first. Walk through this guide if you haven’t already: Master the Basics - How to Install Docker

Step 2: Create or Modify Your Docker Compose File

Let’s define your Radarr container in docker-compose.yml. The file below runs Radarr on its own. Already have other Arr apps in a Compose file (say, from my Sonarr guide)? Just drop the radarr: service into your existing services: block and reuse the same media_network instead of pasting the whole thing.

Open the Compose File

Open your existing docker-compose.yml or create a new one:

nano /docker/docker-compose.yml

Paste this in:

services:
  #################################
  # RADARR
  #################################
  radarr:
    # Official LinuxServer.io Radarr image
    image: lscr.io/linuxserver/radarr:latest
    # Friendly name for the container
    container_name: radarr
    # Pulls PUID, PGID, UMASK, TZ, ports, and paths from the .env file
    env_file: .env
    ports:
      # Maps the host port to Radarr's web UI (7878) inside the container
      - ${RADARR_PORT}:7878
    volumes:
      # Radarr's config and database (persists across restarts)
      - ${CONFIG_PATH}/radarr:/config
      # Your movie library
      - ${MEDIA_PATH}/Movies:/movies
      # Shared download folder (must be the same path in every Arr container)
      - ${DOWNLOADS_PATH}:/downloads
    healthcheck:
      # Lets `docker ps` show "healthy" once the UI starts answering
      test: wget --no-verbose --tries=1 --spider http://localhost:7878/ping || exit 1
      start_period: 30s
      timeout: 3s
      interval: 30s
      retries: 3
    networks:
      # Joins the shared media network
      - media_network
    # Restart automatically unless you stop it yourself
    restart: unless-stopped

#################################
# NETWORK
#################################
networks:
  media_network:
    # Shared network, created once with: docker network create media_network
    name: media_network
    external: true

💡 Tip: Watch your spacing. YAML is picky. Two spaces per indent, no tabs. Mix them and the container won’t start.

Step 3: Customize the .env File

Open the .env File

nano /docker/.env

The contents should look like this:

# User and Group ID (Prevents permission issues)
# Main user ID
PUID=1000
# Main group ID:
PGID=1001
# File permission mask
UMASK=0007

# Timezone (Ensures correct scheduling and logs)
TZ=America/Denver

# Define Ports (Ports for each container are defined here)
RADARR_PORT=7878
SONARR_PORT=8989
SABNZBD_PORT=8080
PROWLARR_PORT=9696
BAZARR_PORT=6767

# Data Directories (Keeps storage paths centralized)
CONFIG_PATH=/docker
DOWNLOADS_PATH=/downloads
MEDIA_PATH=/media/Storage

Update the Radarr paths to match your setup. Here’s what each one does:

  • CONFIG_PATH=/docker is the root folder where Docker stores persistent container files.
  • MEDIA_PATH=/media/Storage is the root folder for your media files.
  • DOWNLOADS_PATH=/downloads is where your download client drops temp and incomplete files.

Make sure your download client container shares access to the /downloads path. If it doesn’t, Radarr can’t move finished downloads into your library and you’ll spend an afternoon wondering why.

Also update TZ to your timezone. Reference: this list of valid timezones.

Step 4: Start Radarr

The Compose file attaches to an external network called media_network, so create it once before you bring the stack up:

docker network create media_network

Bring your new Radarr container online:

docker compose up -d

Check that it’s running:

docker ps

You should see radarr in the list of containers:

CONTAINER ID   IMAGE                               COMMAND   CREATED          STATUS                    PORTS                                         NAMES
ff12a474a4fe   lscr.io/linuxserver/radarr:latest   "/init"   54 seconds ago   Up 53 seconds (healthy)   0.0.0.0:7878->7878/tcp, [::]:7878->7878/tcp   radarr

Step 5: Fix Permissions (If Needed)

Permission problems are the classic gotcha with media containers. Here’s how to make everything play nice:

sudo chown -R `yourusername`:media /docker/ && sudo chmod -R 770 /docker/
sudo chown -R `yourusername`:media /media/ && sudo chmod -R 770 /media/

Want the longer explanation of what’s going on here? Read this: Master the Basics - Linux Permissions

Step 6: Access Radarr

Open your browser and hit:

http://your-server-ip:7878

From there you can add movies, set quality profiles, and connect your download clients.

For deeper configuration, the official Radarr Wiki is the definitive source.

Step 7: Keep Your Docker Software Updated

To update:

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 comes back up on the latest version. No reconfig needed.

Conclusion

Radarr does the boring work. It tracks, downloads, upgrades, and organizes your movies without you babysitting it. No more hunting for files, renaming releases, or shuffling folders around by hand.

Running it in Docker keeps your host system clean and your container easy to manage. Pair Radarr with Sonarr for TV shows and Lidarr for music, and you’re running a self-updating media library that mostly takes care of itself.

Want to run the whole suite from a single Compose file instead of one app at a time? See the complete arr stack Docker Compose guide.

Was this useful?

Last updated on Jun 22, 2026 00:00 UTC