Use Docker to Set Up Plex on a Synology NAS

  • Post author:WunderTech
  • Post published:June 10, 2021
  • Post last modified:October 22, 2023
  • Post category:Synology
  • Reading time:7 mins read

Share what you're reading!

Today we are going to take a look at how you can install Plex on a Synology NAS using Docker.

As of today, the DSM 7 Release Candidate package for Plex doesn’t work. However, Docker is not impacted, which is why we’re going to take a look at how you can get Plex working on DSM 7!

Instructions – Use Docker to Set Up Plex on a Synology NAS

1. Inside of the Docker shared folder, create a sub-folder named Plex, then create three sub-folders inside of that folder: config, transcode, data.

2. Ensure that Docker is installed and launch the application.

3. Open the Registry, then download the latest plexinc/pms-docker image.

synology nas plex docker container download

4. When the image finishes downloading, double-click the image to launch the configuration tool. Give the container a name, then select Advanced Settings. Ensure that Enable auto-restart is selected.

synology nas plex docker container creation auto restart

5. In the volume section, map the container’s folders as shown in the image below. NOTE: The Media folder that I mapped contains sub-folders for my Movies, Music, and TV Shows. If you have separate shared folders for those types of media files, you will have to mount different volumes for each. This is explained in greater detail in the video above.

synology nas plex docker volume settings

6. In the Network section, select Use the same network as Docker Host.

synology nas plex docker host network settings

7. Ensure you can SSH into your Synology NAS. Open Control Panel, select Terminal & SNMP, and Enable SSH service. If you are using Synology’s Firewall, ensure that you allow port 22 traffic. You can learn how to SSH into your Synology NAS here.

8. This next part is a little confusing and is better explained in the video. In summary, we need to specify the PUID and GUID in order for the container (Plex) to access our media share. You will have to run the command below and substitute the correct username. NOTE: You must ensure that the user/group has read/write permission to your media folder.

getting the id of the user that plex will access media with

9. In the environment variables section, create two variables: PLEX_UID, PLEX_GID. Substitute the correct values that you found in the last step. Select Apply and create the container. NOTE: As of the latest Plex update, use the environment variables PLEX_UID and PLEX_GID rather than PUID & GUID.

adding the PUID and GUID values to ensure the container can access media

10. Navigate to the IP address of your Synology NAS using port 32400 and /manage. The URL should look like this:


11. Sign in with your Plex username/password or create one if you don’t already have an account.

accessing plex after it is started

12. Give the server a name and select Next. If you want Plex to automatically try to allow connections on port 32400 (using UPnP), you can select Allow me to access my media outside my home. I generally stay away from UPnP, so I will disable this.

plex server setup

13. You will now have to create your media libraries. Select Add Library, the content type you’d like to use, along with the folder and location where it’s stored. You will have to do this for each media type you’ll be using. Select Next, then Done and your media will start to sync!

media folder setup process

Hardware Transcoding

As of right now, hardware transcoding does not work when using Synology’s GUI. A docker-compose or docker run command is required. I have a video below explaining how to use it with the Plex package, which will allow you to use the Plex package OR Docker. Special thanks to ChuckPa on the Plex forums for the help.

Please keep in mind that you can create your own Docker-Compose or Docker Run command if you don’t want to use it in tandem with the Plex package.


We aren’t entirely sure when the Synology Plex package will be updated, but there are plenty of people who prefer running it in Docker. If you implement this, you don’t have to switch to the official package when it’s released, but you are free to do so if you’d like!

Thanks for checking out the tutorial. If you have any questions, leave a comment and I will do my best to get back to you.