Synology NAS에서 Plex Media Server를 Docker로 설치하기

Plex는 사실 Docker로 사용할 이유가 없기는 하지만, 시놀로지와 같은 이상한 리눅스 환경이면 Docker로 사용하는게 사실 더 마음편한 방법일 수도 있다. 관리면에서도 그렇고, 성능면에서도 그렇고. Plex 관련 커뮤니티에서 Plex를 도커로 설치하는 방법에 관해 묻는 방법을 몇번 보아서, 한번 제대로 설명글을 써야겠다는 생각이 들었다.

이 글은 시놀로지 중심으로 설명한 글이나, 비슷한 방법으로 일반 리눅스 환경에도 사용할 수 있다.

Plex 유저 만들기

제어판 → 사용자 → 생성에서 Plex 유저를 사용해준다. 이는 Docker 내 Plex 컨테이너와 공유폴더를 제대로 설정해주기 위함이다. 이 과정이 없으면 추후 파일/폴더권한 관리가 좀 귀찮아진다.

Screenshot_2017-10-11_17-30-24.png

만약 기존에 Plex를 패키지 센터에서 설치해줬거나 SPK 파일의 형태로 직접 설치한 적이 있다면 이미 있을 것이다. 그럴 경우에 이 과정은 패스하면 된다.

SSH 접속

Docker가 구동중인 기기의 root 계정으로 접속한다. 시놀로지는 관리자 계정으로 접속 후 sudo -i 커맨드를 통해 root 계정으로 로그인하면 docker 커맨드를 사용할 수 있다. admin 계정이나 administrator 그룹의 계정으로는 docker 커맨드를 직접 사용할 수 없다. (다만 DSM 6.2 Beta에서는 된다.)

Screenshot_2017-10-11_17-34-45

docker -v 커맨드를 쳐서 docker가 제대로 인식되고 있는지 확인하자. DSM 6.1 버전을 사용하고 있는 사람이라면 1.11.x 버전이 나올것이고, DSM 6.2 Beta를 사용중이라면 17.05.0-ce 버전이 나올것이다.

id plex 커맨드를 입력하면 uid값과 gid 값을 얻을 수 있을 것이다. 일반적인 경우라면 uid는 10XX번, gid는 100번이 나올것이다. 이 값을 잘 기억해 두자.

Docker 컨테이너 구동

Plex의 컨테이너로는 공식 이미지와 Linuxserver의 이미지가 있다. 둘다 사용해본 입장에서 말하자면, 공식 이미지는 좀…. 오류가 있고 사용하기가 껄끄럽다. Linuxserver의 이미지가 훨씬 사용하기 편하고 재시작 할때마다 자동으로 서버를 업데이트해 주기까지 하니 그쪽의 것을 사용하도록 하자.

SSH를 통해 다음의 커맨드를 입력한다.

<Plex UID>와 <Plex GID> 부분에는 위에서 id plex로 찾아낸 uid값과 gid값을 넣는다. <타임존>에는 구글에 timezone으로 검색해보면 찾을 수 있을 것이다. 한국의 시간대를 사용하려면 Asia/Seoul을 입력한다.

제대로 설정을 한 예시는 다음과 같다.

아무 문제 없이 컨테이너가 생성된다면 다음의 커맨드를 쳐서 Plex를 구동하자

docker run plex

구동에 성공했을 경우, Synology NAS의 URL로 들어가되 포트번호를 32400으로 설정해주면 된다. (예를 들자면 http://192.168.0.2:32400/web으로 접속) 여기서 구동이 제대로 안된다면 공유폴더 문제일 가능성이 높다. 맨 위에서 생성한 plex 유저에게 폴더 읽기/쓰기 권한을 주도록 하자.

Plex 여러개 구동하기

위의 커맨드를 약간만 변형하면 굉장히 쉽다. 포트번호와 컨테이너 이름만 변경해주면 된다. 아래에서 예시로 두개의 Plex 컨테이너를 구동하는 명령어를 작성해보았다. 참고하도록 하자.

강조한 부분에 주의를 기울여서 꼭 제대로 수정해주도록 하자. -p 옵션은 포트포워딩인데, 콜론(:)의 왼쪽이 호스트 기기, 즉 Synology NAS에 해당하고 오른쪽이 컨테이너에 해당한다. 즉 -p 32401:32400으로 설정했다면 Synology NAS의 32401 포트로 들어오는 통신을 컨테이너의 32400으로 전송하겠다는 의미이다.

위 커맨드는 32400 포트는 plex1에, 32401 포트는 plex2에 물려서 두 컨테이너가 제대로 외부와 통신할 수 있도록 해준다. 다만, Docker 포트포워딩 설정 뿐만 아니라, 아래 사진과 같이 Plex 설정에서 공개 포트를 수동 설정으로 변경해줘야 추후 외부망에서도 Plex가 제대로 작동하게 된다.

Screenshot_2017-10-11_18-05-04_2

공개 포트 수동 설정

 

By | 2017-10-17T19:44:12+00:00 2017-10-11|Tech|6 Comments

About the Author:

프로그래밍을 좋아하는 건축공학도입니다. 블로그는 프로그래밍과 IT쪽으로 현재 운영중이지만 앞으로 건축관련 내용도 다뤄보려고 합니다. 원래 Android 및 Java를 주력으로 다뤘지만 최근에는 개인 프로젝트로 인하여 C#을 주력으로 다루고 있습니다.

6 Comments

  1. 모리사토 2017/10/12 at 오전 9:17 - Reply

    안녕하세요^^ 까페에 올려주신 강좌가 제게 정말 큰도움이 됐습니다 감사합니다! 설치하면서 궁금한점 몇가지가 있어서 문의드립니다.

    올려주신 도커로 다중 plex서버 설치의 명령어를 그대로 복붙해서 설치하였습니다. 몇가지 문제있었지만 어찌어찌 해결하고 plex 서버에 접속해서 라이브러리 추가하려고보니 볼륨1 볼륨2 식으로 기존 경로가 안뜨고 처음보는 경로던데 아마 도커내부폴더같던데 혹시 도커에설치한 plex는 기본 경로가 어디인지. 기존에 다른볼륨들을 매칭시킬순 없는지 문의드립니다..

    • AlphaFactory 2017/10/12 at 오전 9:22

      위에서 사용한 컨테이너 이미지의 기본 미디어 파일 폴더는 /data 폴더입니다. 기존 볼륨을 매칭시키시려면 위의 명령어에서 -v /volume1/movie:/data/movie 이런식으로 추가해주시면 됩니다.

    • 모리사토 2017/10/12 at 오전 10:36

      아 ..말씀하신대로 data폴더안에 미디어넣으니까 뜨네요 ㅎㅎ

      그럼 알려주신 -v /volume1/movie:/data/movie 이 명령어를 넣으려면 위에 docker create \ 명령어부터 새로 다 쳐야되나요 아니면 폴더추가 명령어만 따로 치는곳이 있나요??

    • AlphaFactory 2017/10/12 at 오전 11:37

      시놀로지 NAS에 Docker를 설치하셨다면, DSM에서 Docker 앱을 실행하시고 plex 컨테이너를 중지하신 후, 편집 버튼을 눌러 볼륨탭에서 폴더 및 파일을 변경하실 수 있습니다. 원래대로 docker 명령어를 사용하려면 좀 귀찮은 과정이 많습니다. 아예 Docker를 공부하셔야 할 정도로요.

      DSM 접속 -> 관리자계정으로 로그인 -> 메뉴에서 Docker 실행 -> 비디오 형식 클릭 -> plex 선택하고 오른쪽 클릭-작업-중지 -> 중지되면 다시 오른쪽 클릭-편집 -> 볼륨 탭 -> 폴더추가

    • 모리사토 2017/10/12 at 오후 2:14

      강좌와 댓글이 정말 큰힘이 되었습니다 감사합니다^^ 다만 전 폴더추가문제는 해결이 되지않네요…

      말씀하신대로 시놀로지에서 도커실행시켜서 폴더추가를 하면 plex에서는 폴더가 보이는데, 추가하면 라이브러리 추가가 안되네요. 반대로 초기에 설치된 config파일이나 data폴더등에는 파일이나 폴더를 넣어두면 plex에서도 잘보이고 추가도 잘되고요. 결국 해결방법을 못찾아서 기본폴더에 영상을 옮기니 인식이되네요.

      작성해주신 글과 도움 정말 감사드립니다^^

    • AlphaFactory 2017/10/12 at 오후 2:19

      폴더 권한 문제일 가능성이 높아보이네요. /data 폴더쪽으로 Synology 내의 볼륨을 추가하실 때, 제어판의 공유폴더 설정에서 plex 사용자 id에 폴더 읽기 권한을 주셨나요? 저도 해당 문제 몇번 겪어봤는데 권한문제일 가능성이 높습니다. 권한 주면 제대로 인식될거예요.

      만약 이래도 제대로 안된다면 plex id값이 컨테이너의 PUID 환경변수에 넣어졌는지 확인해보세요. 아까 복붙하셨다고 하셔서 혹시 이 id값까지 그대로 넣으신게 아닌가 하는 생각도 드네요.

Leave A Comment

%d 블로거가 이것을 좋아합니다: