大家好,我是曉飛影!
一個(gè)數(shù)碼愛好者,也喜歡在眾多平行領(lǐng)域探究摸索,讓生活多一點(diǎn)樂趣。
之前在使用威聯(lián)通 TS-451D 的時(shí)候,我直接在 App Center 通過第三方軟件包安裝的形式,裝好了 Jellyfin、Emby、Plex 這三大媒體套件,確實(shí)很方便,而且能直接調(diào)用核顯,堪稱小白的第一選擇。不過有幾次我頻繁測試 Emby 的硬解轉(zhuǎn)碼播放,居然讓 NAS 假死了幾次,重啟 NAS 就能恢復(fù)。所以借著這次更換威聯(lián)通 TS-453Dmini,我打算能用 dokcer 安裝就不用程序包的方式,因?yàn)?docker 好管理,而且系統(tǒng)資源占用極低,我也從來沒遇到過 docker 把 NAS 弄假死的情況,這次我就分享一下如何安裝,其實(shí)網(wǎng)上已經(jīng)有一些 docker 安裝的教程,但是大部分是一次成功,這里面其實(shí)有許多坑的,尤其涉及到核顯調(diào)用部分,所以我也把踩坑經(jīng)歷分享出來,方便大家解惑。
第三方程序包安裝
不過我先分享一下怎么用程序包的方式安裝 Jellyfin、Emby、Plex,如果 docker 實(shí)在安裝不成功的話,就直接用程序包的方式吧,只要不瞎折騰也不會出什么問題。先打開 App Center 右上角的設(shè)置按鈕。
鏈接: 提取碼: bg6r
通用頁面勾選允許在沒有有效數(shù)字簽名的情況下安裝應(yīng)用程序,點(diǎn)擊應(yīng)用。
然后在 App Center 右上角的加號選擇手動安裝,在本地電腦選擇 qpkg 格式結(jié)尾的程序包,點(diǎn)擊安裝,之后在系統(tǒng)桌面就可以看到程序圖標(biāo)了,可以直接點(diǎn)擊使用,注意 Jelly 和 Emby 最開始是同源的,所以默認(rèn)端口都是 8096,兩個(gè)都安裝的話可能會起沖突,所以建議只裝其一,如果是 docker 安裝的話還可以自己修改下端口映射。
docker 安裝 Portainer
其實(shí)威聯(lián)通的 Container Station 也是 docker 的管理界面,已經(jīng)做的不錯(cuò)了,但是唯獨(dú)安裝好容器后不好修改之前配置的文件夾等參數(shù),如果只用 ssh 敲命令的方式也可以解決,不過還是建議安裝上 Portainer 圖形界面來統(tǒng)一管理 dokcer,出現(xiàn)問題調(diào)試也比較方便,安裝命令如下。
docker run -d -p 9000:9000 \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
--name prtainer-test \
protainer 開始會有 admin 頁面,提示創(chuàng)建密碼,然后選擇 Local,如果有集成管理需求,就選擇 Remote。
主界面可以看到基本是全英文的,一開始可能都會覺得有點(diǎn)頭大,但是實(shí)際只要記得圖中幾個(gè)中文標(biāo)注的菜單就夠了,用的最多的也是 Containers 界面。
點(diǎn)進(jìn)去可以看到正在運(yùn)行的容器,和威聯(lián)通系統(tǒng)內(nèi)的容器數(shù)量是一模一樣的,主要是之后要在這個(gè)頁面對容器進(jìn)行編輯會很方便。
docker 安裝 Plex
首先在 QTS 系統(tǒng)內(nèi)打開 ContainerStation,在創(chuàng)建頁面搜索plex,可以看到最多標(biāo)星的有 plexinc 和 linuxserver,這鏈各個(gè)版本其實(shí)都可以,因?yàn)橛性S多人會遇到奇怪的問題,換個(gè)其他人的版本安裝就好了,所以不必糾結(jié)哪個(gè)版本最好,能成功運(yùn)行最好。而威聯(lián)通的 ContainerStation 還有一個(gè)好處是點(diǎn)擊鏡像的名稱,可以直接跳轉(zhuǎn)到 dockerhub 的頁面,這個(gè)步驟不是必要步驟,只是許多人都照抄各種大佬的命令安裝,出了問題也不知道怎么查,其實(shí)答案全部都在開發(fā)者的頁面,我也是慢慢摸索才弄清楚,這次就分享給大家,找到原理才好解決問題。
跳轉(zhuǎn)到 dockerhub 頁面后,頁面都是全英文的,英語不好的也別緊張,可以翻譯頁面大概了解意思就行,關(guān)鍵的信息其實(shí)還很簡單,鏡像名稱下可以看到更新頻率,右側(cè)是直接拉取鏡像的命令,Win10 系統(tǒng)可以通過 putty軟件,通過 ssh 連接到 NAS,輸入拉取鏡像命令到本地,Mac 比較簡單可以直接通過終端輸入 ssh
admin@192.168.199.10 這樣的命令直接連接 NAS,這步操作對應(yīng)的就是威聯(lián)通 ContainerStation 鏡像頁面右側(cè)的創(chuàng)建按鈕,完成下載的過程。
然后往下拉,可以看到有幾種模式的安裝方法,我們平時(shí)用的最多的就是 Bridge Networking 這種方法,這個(gè)命令復(fù)制了直接運(yùn)行是肯定會出問題的,這只是一個(gè)舉例。-p 指的就是端口映射,冒號后面的全部都是該容器的端口或者路徑,是不能修改的,冒號前面都是自己進(jìn)行映射的,可以看情況修改,比如 -p 端口號可以寫一樣的 32400,或者 1234都可以。而 -v 是文件夾路徑,比如這個(gè)官方的 plex 容器需要三個(gè)文件夾,config(配置)、transcode(轉(zhuǎn)碼)、data(媒體)信息,所以至少要保證這三個(gè)文件夾信息。-e 就是環(huán)境變量,等一會再說。
所以在威聯(lián)通內(nèi),我建議在 Container 文件夾下按照容器建立文件夾,然后建立子文件夾,這樣就可以一一對應(yīng),未來還方便遷移。
如果是通過命令行的方式選擇路徑的話,以上的路徑應(yīng)該是-v /share/Container/plex/config:/config
那有的人如果是不止一個(gè) media 文件夾該怎么辦呢,我試了下其實(shí)你可以多映射幾個(gè)文件夾,在plex一樣可以選擇到,比如-v share/dapian:/dapian
剛才還有的命令沒有提到,比如 TZ、PLEX_CLAIM 該怎么填,其實(shí)答案都在頁面下方,比如 TZ 可以寫 Europe/London,但是和我們的時(shí)區(qū)不一樣,可以點(diǎn)進(jìn)它的網(wǎng)址去查看本地的時(shí)區(qū),Asia/Shanghai
PLEX_CLAIM 按照它的鏈接跳轉(zhuǎn)到頁面,登錄自己注冊的賬號密碼就可以獲得 CLAIM 的值了,復(fù)制剛才的命令,填寫到剛才的命令行里面。
那么最終我的命令如下:
docker run \
-d \
--name plex \
-p 32400:32400/tcp \
-p 3005:3005/tcp \
-p 8324:8324/tcp \
-p 32469:32469/tcp \
-p 1900:1900/udp \
-p 32410:32410/udp \
-p 32412:32412/udp \
-p 32413:32413/udp \
-p 32414:32414/udp \
-e TZ="Aisa/Shanghai" \
-e PLEX_CLAIM="claim-sG8sYnUastzs3LUd9oAH" \
-e ADVERTISE_IP="http://192.168.199.34:32400/" \
-h MY PLEX \
-v /share/Container/plex/config:/config \
-v /share/Container/plex/transcode:/transcode \
-v /share/media:/data \
-v /share/dapian:/dapian \
plexinc/pms-docker
可能有的編輯器會不顯示后面的斜桿,所以我截圖展示一下,這里面不一定所有的命令都需要復(fù)制,比如有的端口不需要可以取消,包括文件夾路徑也只是參考,這樣根據(jù)自己的實(shí)際情況來填寫也就比較容易了。注意不同 NAS 系統(tǒng)的文件夾路徑可能有區(qū)別,比如威聯(lián)通的是 share。
另外,我自己設(shè)置的是靜態(tài)卷三個(gè)分區(qū),分別是 CACHEDEV1_DATA, CACHEDEV2_DATA, CACHEDEV3_DATA,實(shí)際我測試刪掉CACHEDEV3_DATA,直接 share 后面接我 NAS 里的文件夾也是看的到的,所以還是以上面的命令行的路徑為主。接下來,可以到 ssh 里輸入命令創(chuàng)建,或者是直接用威聯(lián)通的 ContainerStation 創(chuàng)建都可以,只要了解了文件夾,端口,環(huán)境變量,在任何 NAS 系統(tǒng)都可以很方便的部署。
那么最關(guān)鍵的問題來了,核顯怎么調(diào)用還沒有說,首先確定自己的 NAS 的 CPU是支持硬解的。
ls /dev/dri
輸入命令后看到 card0 renderD128 就是支持核顯。
chmod a+x /dev/dri
輸入命令后是讓 dri 文件夾下都有可執(zhí)行權(quán)限,這個(gè)命令有的人沒輸入也能成功,建議輸入,而且docker 一直遇到問題可以嘗試在 admin 賬號下進(jìn)行操作,權(quán)限更大。
這個(gè)核顯驅(qū)動文件夾其實(shí)在 docker 創(chuàng)建時(shí)就可以輸入,只是我習(xí)慣一步步排除問題,先建好容器后再加入也是可以成功的,這個(gè)時(shí)候就靠 portainer 登場了,點(diǎn)擊 Containers 文件夾,點(diǎn)擊容器名稱,這里我換了 linuxserver 的鏡像又安裝了一次,應(yīng)該說每個(gè)鏡像我都刪除更換了許多次來摸索,原理都是一樣的。
進(jìn)入容器后,點(diǎn)擊右上角的 Duplicate/Edit,進(jìn)行編輯,Portainer 有個(gè)好處是不用停止容器也可以直接編輯,再發(fā)布直接覆蓋就好了,節(jié)省步驟。
進(jìn)入編輯頁面后往下拉,可以看到一排頁面標(biāo)簽,比如 Volumes 就是文件夾映射,我有時(shí)候直接創(chuàng)建一個(gè)空的容器,在 Portainer 這里手動填寫路徑,感覺靈活度非常高,比如未來又有新的媒體文件夾里就在這里添加,注意右側(cè)要選擇 Bind 才能輸入自定義路徑。
此處是設(shè)置容器
點(diǎn)擊 Runtime & Resouces 標(biāo)簽頁面,此處就是調(diào)用核顯的關(guān)鍵,在下方點(diǎn)擊 add device,手動填寫核顯文件夾的路徑/dev/dri,下方還可以對這個(gè)容器占用系統(tǒng)性能設(shè)置區(qū)間,一般默認(rèn)即可,再點(diǎn)擊上方的 Deploy the container 按鈕就可以覆蓋啟動容器了。
接下來輸入 IP:32400 訪問 PLEX 媒體庫,按照步驟一直下一步。
成功到啟動頁面后點(diǎn)擊右上角的工具按鈕來到控制面板。
遠(yuǎn)程訪問這里有一個(gè)感嘆號,需要勾選后點(diǎn)擊啟用。
同時(shí)我還在路由器的端口轉(zhuǎn)發(fā)規(guī)則轉(zhuǎn)發(fā)了 32400 的端口號,也沒有和 PLEX 頁面的設(shè)置沖突,目前都能正常外網(wǎng)訪問。
PLEX 不能調(diào)用本地刮削好的 NFO 文件,所以我也加上了補(bǔ)丁,分別是電影和電視節(jié)目的刮削器,注意文件命名后綴要改為 bundle 和圖中一致。docker 版補(bǔ)丁的路徑放在 Container/pelx/config/Library/Application Support/Plex Media Server/Plug-ins 文件夾下,然后重啟 PLEX。
回到 PLEX 界面點(diǎn)擊資料庫。
右上角添加資料庫。
選擇電影,語言改為中文。
選擇文件夾為電影媒體文件夾。
高級里面的代理實(shí)際就是刮削器,選擇 XBMCnfoMoviesImporter 就可以加載本地已經(jīng)整理好的 NFO 文件。
注意這個(gè) Enable generating Collections from tags 的勾要去掉,不然會生成很多tag 標(biāo)簽導(dǎo)致媒體庫很亂。
如果有系列電影比如「鋼鐵俠」想生成一個(gè)系列文件夾預(yù)覽的,可以選擇 Hide items which are in collections,然后添加資料庫。
等待一段時(shí)間,電影完全整理好了。
使用硬件轉(zhuǎn)碼的話要在轉(zhuǎn)碼器部分選擇下方的兩個(gè)調(diào)用硬件轉(zhuǎn)碼的選項(xiàng),PLEX 的漢化版本一直做的一般,這里都是英文,有的是中文。而且 PLEX 的轉(zhuǎn)碼是需要會員的,我是 220 元買的一個(gè)終身版,目前還沒有被黑。不像 Emby 和 Jellyfin 那樣選擇硬件轉(zhuǎn)碼后能看到許多轉(zhuǎn)碼選項(xiàng),到這一步都不確定是否真的裝好了 docker 的核顯調(diào)用。
必須打開一個(gè)電影,手動將播放質(zhì)量選到很低,來測試能否核顯硬解,如圖看到(hw)這個(gè)標(biāo)識就是成功啟用硬解了。
再就是回到威聯(lián)通過的資源監(jiān)控頁面,看一下 CPU 的占比,如果一直比較低的話,那絕對沒有問題了,如圖 Container Station 的資源占比也很低,這也是我喜歡裝 docker 的原因。
如果有人到這一步發(fā)現(xiàn)核顯依然無效,媒體播放還是軟件解碼該怎么辦,最后的罪魁禍?zhǔn)卓赡芫驮诖颂幜?,依然回?Portainer 對容器進(jìn)行編輯,linuxsever 的鏡像的 Env 環(huán)境變量內(nèi)有 PUID 和 GUID 兩個(gè)變量,沒有的話手動添加,改為 0 即可。
為什么改成 0,可以ssh 命令下輸入 id admin 就發(fā)現(xiàn) uid 和 gid 都是 0,也就是 admin 賬戶的權(quán)限,如果自己建立了新的賬號,也可以用 id 用戶名的方式檢查自己的 uid 和 gid,填寫進(jìn)去,不過可能還是沒用,所以其他的 docker 如果有填寫 uid、gid 的需求,省心的話就全部填 0 就可以了。注意這個(gè)uid 和 gid 在別的 docker 可能叫法不一樣,老辦法點(diǎn)進(jìn) dockerhub頁面查看文檔,或者先自動建立一個(gè)鏡像看環(huán)境變量里有沒有自動生成,再去手動修改值。
重啟 PLEX,大概率核顯硬解問題就全部解決了。
docker 安裝 Emby
plex 是最麻煩的部分,弄清楚了 docker 每個(gè)命令的原理,和 portainer修改的方法,一切就變簡單了,Emby 就分享下 linuxserver 的鏡像安裝方式,大家參考后修改即可。
docker run -d \
--name=emby \
-e PUID=0 \
-e PGID=0 \
-e TZ=Aisa/Shanghai \
-p 8096:8096 \
-p 8920:8920 \
-v /share/Container/plex/config:/config \
-v /share/media:/data/media \
-v /share/dapian:/data/dapian \
--device /dev/dri:/dev/dri \
--restart unless-stopped \
ghcr.io/linuxserver/emby
我根據(jù)自己的情況修改后的命令行,和官方的做個(gè)對比,大家也就知道該怎么根據(jù)自己的實(shí)際情況來修改了。
順便把我的 Portainer 設(shè)置截圖一下,可以參照對比,端口映射部分。
文件夾映射部分,上文也說了,CACHEDEV1_DATA是我建立了幾個(gè)靜態(tài)卷,我以為要分開路徑,實(shí)際都在 share 目錄下就可以看到了,可以刪掉。
Env 環(huán)境變量大部分都是自動生成的,我已經(jīng)裝好的是 embyserver 的官方鏡像,所以多了個(gè) GIDLIST,注意此處也是 UID、GID、GIDLIST 都改為 0 了,并沒有按模板的 1000 來填寫,也確實(shí)開啟了核顯硬解。
設(shè)置自動啟動選項(xiàng)。
設(shè)置調(diào)用核顯的路徑,如果開始在命令行輸入 --device /dev/dri:/dev/dri 的話,此處就已經(jīng)有了,沒有寫的話,之后手動加入也是可以的。
最后點(diǎn)擊 Deploy the container 就可以發(fā)布容器,會提示覆蓋就直接覆蓋。
docker 安裝 Jellyfin
docker run -d \
--name=jellyfin \
-e PUID=0 \
-e PGID=0 \
-e TZ=Aisa/Shanghai \
-p 8096:8096 \
-p 8920:8920 \
-p 7359:7359/udp \
-p 1900:1900/udp \
-v /share/Container/plex/config:/config \
-v /share/media:/data/media \
-v /share/dapian:/data/dapian \
--device /dev/dri:/dev/dri \
--restart unless-stopped \
ghcr.io/linuxserver/jellyfin
Jellyfin 和 Emby 都是同源的,安裝也最簡單,硬解核顯還不需要會員,應(yīng)該是受眾面最廣的,命令也差不多是一樣的,不過因?yàn)槲已b了 Emby,端口都是 8096 沖突,我也懶得修改端口號就沒裝 Jellyfin 了,Portainer 就沒有截圖了。
總結(jié)
docker 的安裝教程許多地方都有,玩 NAS 折騰最多的應(yīng)該就是 Jellyfin、Emby、Plex 這幾樣,由于涉及核顯調(diào)用,很容易出現(xiàn)問題,我把幾個(gè)關(guān)鍵點(diǎn)在梳理一下:
- 盡量用 admin 賬號創(chuàng)建;
- chomd a+x /dev/dri,給核顯文件夾賦予可執(zhí)行權(quán)限;
- uid 和 gid 可以設(shè)置為 0,也是 admin 的賬號權(quán)限;
- 鏡像安裝失敗可以換一個(gè)嘗試;
寫 NAS 備忘錄的目的主要也是給我自己折騰的過程中,總結(jié)學(xué)習(xí),下次再裝就輕車熟路了,我每次折騰都要查不少的資料,評論區(qū)也經(jīng)常遇到一堆的問題,最后經(jīng)常到 dockerhub 頁面看一下說明文檔,許多問題都能得到答案。授之以魚不如授之以漁,希望我的這些經(jīng)歷也能讓大家少走彎路,同時(shí)多分享多交流,大家都能節(jié)約不少折騰的時(shí)間。
廣告聲明:文中若存在對外跳轉(zhuǎn)的鏈接(涵蓋商品鏈接、超鏈接、二維碼等各類形式),其目的在于為您呈上更多與內(nèi)容相關(guān)的產(chǎn)品信息,助您迅速甄別。但我們不對其做任何明示或暗示的保證,煩請您謹(jǐn)慎參考,依據(jù)自身的需求與判斷來做出決策。