One of the most common questions from Plex users building a new server: Docker or bare metal? The internet will give you passionate advocates for both. Here's the practical answer from someone who's fixed hundreds of both.

Bare Metal: The Simple Choice

Install Plex directly on your operating system. Download the installer, run it, point it at your media folder. Done.

Pros

Cons

Docker: The Flexible Choice

Run Plex inside a container using linuxserver/plex or the official plexinc/pms-docker image.

Pros

Cons

The Gotchas We Fix Most Often

Docker GPU passthrough not working

Symptoms: Hardware transcoding disabled in Plex, or it says "hardware transcoding is available" but still software-transcodes. The fix depends on your GPU:

Remote access fails in Docker

Plex uses GDM (G'Day Mate) for local discovery. In bridge networking mode, GDM broadcasts don't escape the container network. Fix: use network_mode: host, or manually set the advertised IP in Plex's network settings and forward port 32400.

Library permissions

Container runs as user 1000, but media files are owned by root or another user. Plex can see the mount but can't read the files. Fix: set PUID=1000 PGID=1000 in your compose environment to match the media file owner.

Our Recommendation

New to Plex? Bare metal. Get it running first, learn the settings, then containerize later if you want.

Running other services (Sonarr, etc.)? Docker. The compose ecosystem is too good to pass up.

Unraid/TrueNAS? Docker is the default there. Use the community app (Unraid) or TrueCharts (TrueNAS SCALE).

Synology/QNAP? Use the native Plex package, not Docker. The NAS vendors optimize their packages for their hardware transcoding chipsets.

Need a Hand?

Whether you're setting up Plex fresh in Docker, migrating from bare metal, or debugging GPU passthrough — our Full Setup and Pro Build tiers cover exactly this. We'll get your compose stack running clean and optimized.