
安裝軟件
-
百度雲
-
迅雷
-
網易雲音樂
-
網易雲音樂-Unblock
-
搜狗拼音輸入法
-
xnview-圖片瀏覽器
-
SMPlayer-視頻播放
-
dupeguru-重復文件檢索
-
Chromium
-
UI中文語言支持
...
考慮鏡像體積,只裝了個人覺得必要的部分,有其他需求可以進入容器內自行安裝
個人試過nextcloud客戶端,vlc,wps,mega,都可以安裝成功並運行
鏡像
https://hub.docker.com/repository/docker/cclient/ubuntu-vnc-xfce-chromium-g3
https://github.com/cclient/ubuntu-vnc-xfce-chromium-g3
啟動命令
vnc客戶端訪問
docker run --user root -d --name vnc -e VNC_PW=headless -e LIBVA_DRIVER_NAME=iHD -v /root/headless_config_baidunetdisk:/home/headless/.config/baidunetdisk -v /root/headless_cache:/home/headless/.cache -v /root/headless_ThunderNetwork:/home/headless/ThunderNetwork --device /dev/dri:/dev/dri -p 5901:5901 cclient/ubuntu-vnc-xfce-chromium-g3:vnc
瀏覽器訪問
docker run --user root -d --name vnc -e VNC_PW=headless -e LIBVA_DRIVER_NAME=iHD -v /root/headless_config_baidunetdisk:/home/headless/.config/baidunetdisk -v /root/headless_cache:/home/headless/.cache -v /root/headless_ThunderNetwork:/home/headless/ThunderNetwork --device /dev/dri:/dev/dri -p 6901:6901 cclient/ubuntu-vnc-xfce-chromium-g3:vnc-novnc
參數說明
通用參數
--user headless / root 以指定用戶身份訪問,root其實方便一些,不過有些軟件例如vlc, nextcloud 無法以root 用戶執行,需要以headless運行,或更改設置,若直接以headless啟動,則因為部分目錄權限問題,不可保存登錄狀態,需以root進入容器,更改相關目錄的權限
-e VNC_PW=headless vnc 密碼
-e LANG='zh_CN.utf8' 指定UI為中文,默認英語,建議對英文環境不熟悉的先用中文進入熟悉環境,然后以英語啟動,中文環境下終端的字體比較詭異
視頻硬解顯卡相關參數-實際並不生效,未解決
--device /dev/dri:/dev/dri 顯卡,映射顯卡,硬解使用,雖然查看顯卡信息正常,但我個人硬解並不生效
-e LIBVA_DRIVER_NAME=iHD 顯卡名稱,需根據不同的顯卡調整,我個人的U集顯為hd630 LIBVA_DRIVER_NAME設置為iHD,hd610可能是i915 其他顯卡需要自行測試
支持`i915,i965,iHD,iris,kms_swrast,nouveau,nouveau_vieux,r200,r300,r600,radeon,radeonsi,swrast,virtio_gpu,vmwgfx,zink這些參數,可以查詢相應的顯卡設置值,或更改env測試
測試方法如下,更改環境變量后執行vainfo
export LIBVA_DRIVER_NAME=iHD
vainfo
匹配成功則輸出
root@83e7992ab44a:~# vainfo
error: XDG_RUNTIME_DIR not set in the environment.
libva info: VA-API version 1.7.0
libva info: User environment variable requested driver 'iHD'
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_7
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.7 (libva 2.6.0)
vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 20.1.1 ()
vainfo: Supported profile and entrypoints
VAProfileMPEG2Simple : VAEntrypointVLD
VAProfileMPEG2Main : VAEntrypointVLD
VAProfileH264Main : VAEntrypointVLD
VAProfileH264Main : VAEntrypointEncSliceLP
VAProfileH264High : VAEntrypointVLD
VAProfileH264High : VAEntrypointEncSliceLP
VAProfileJPEGBaseline : VAEntrypointVLD
VAProfileJPEGBaseline : VAEntrypointEncPicture
VAProfileH264ConstrainedBaseline: VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointEncSliceLP
VAProfileVP8Version0_3 : VAEntrypointVLD
VAProfileHEVCMain : VAEntrypointVLD
VAProfileHEVCMain10 : VAEntrypointVLD
VAProfileVP9Profile0 : VAEntrypointVLD
VAProfileVP9Profile2 : VAEntrypointVLD
匹配失敗則輸出
root@83e7992ab44a:~# vainfo
error: XDG_RUNTIME_DIR not set in the environment.
libva info: VA-API version 1.7.0
libva info: User environment variable requested driver 'i915'
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i915_drv_video.so
libva info: va_openDriver() returns -1
vaInitialize failed with error code -1 (unknown libva error),exit
不過雖然看樣子驅動成功了,但個人實際播放視頻並沒有使用硬解,我也不知哪里的問題,還希望熟悉的提示解決
軟件狀態保持參數-需-v
映射外部目錄(主要是登錄狀態)
軟件 | 描述 | 路徑 |
---|---|---|
迅雷 | 軟件運行狀態/用戶登錄信息 | /home/headless/ThunderNetwork |
迅雷 | 默認下載目錄,可操作調整 | /home/headless/迅雷下載 |
百度雲 | 軟件運行狀態/用戶登錄信息 | /home/headless/.config/baidunetdisk |
百度雲 | 默認下載目錄,可操作調整 | /home/headless |
網易雲音樂 | 軟件運行狀態/用戶登錄信息 | /home/headless/.cache/netease-cloud-music |
/home/headless/ThunderNetwork
/home/headless/.config
/home/headless/.cache
其實可以粗放些,直接映射以下三個目錄,若以headless啟動,則因為headless對部分目錄無權限,導致無法保存,需以root進入容器,更改權限
操作如下
docker exec --user root -it vnc bash
chmod headless:headless -R /home/headless
最初的nas下載軟件選型
國內nas,迅雷,百度雲足夠覆蓋日常應用場景,最初參照學習選型
-
迅雷 https://hub.docker.com/r/yinheli/docker-thunder-xware
通過 http://yuancheng.xunlei.com/ 訪問,有時會無法豆錄
-
百度雲 https://hub.docker.com/r/johnshine/baidunetdisk-crossover-vnc/
現方案的軟件選型
百度雲
https://hub.docker.com/r/johnshine/baidunetdisk-crossover-vnc/
百度雲本想用 baidunetdisk-crossover-vnc
因為這是專為群暉做的適配,個人系統為omv,當時可以啟動運行,但無法登錄,短期不好解決,現在的版本在omv下運行良好
了解到baidunetdisk-crossover-vnc是基於vnc實現的,我另找個vnc鏡像再裝個baidu雲不就好了
安裝百度雲官方deb包 https://pan.baidu.com/download#pan
迅雷
既然有了vnc的桌面環境,找找有沒有迅雷的linux包,官方的沒找到,找到了網友提供安裝包
https://tieba.baidu.com/p/6926605744
網易雲音樂
nas除了文件下載,音樂下載也是需要的,考慮會員限制,Unblock也是需要的
首先強調下,vnc不支持音頻,播放無聲,只是下載
-
官方提供鏡像 https://music.163.com/#/download
版本為1.2,不便Unblock,花了較多時間,最后完成了1.2+Unblock
-
第三方鏡像 https://github.com/InNoob/netease-cloud-music/releases 版本為1.1,Unblock容易,但安裝后穩定性較差,窗口無法拖拽,需重復多次運行才能成功啟動
網易雲音樂-Unblock
https://github.com/nondanee/UnblockNeteaseMusic
最好能把Unblock集成在鏡像內,並且可以切換是否使用代理,有會員的直接使用,無會員的Unblock使用
集成了Unblock服務
並在桌面上添加了兩個圖標
- Del Proxy 關閉Unblock-有會員
- Add Proxy 啟動Unblock-無會員
搜狗拼音輸入法
中文環境,需要中文輸入法
-
百度輸入法 https://srf.baidu.com/site/guanwang_linux/index.html
安裝包太大了,考慮鏡像的體積,放棄
-
搜狗輸入法 https://pinyin.sogou.com/linux/?r=pinyin
體積較小
xnview-圖片瀏覽器
迅雷和百度雲下的文件,主要是圖片和視頻類,需要基本的查看預覽
圖片瀏覽/管理
SMPlayer-視頻播放
視頻播放有個硬件直通的問題
這個我個人一直沒解決-已經把顯卡映身進鏡像了,驅動也顯示正常,但是播放時並不會使用硬解
個人試了多項視頻播放器
vlc功能強大,使用的人也較多(個人mac,app,機頂盒也是用的vlc)
該鏡像內視頻播放器,主要目的是預覽視頻,不是真正的播放
同時鑒於nas 平台的性能一般,負載也是很重要的考慮因素
在同樣硬解無法生效的前提下SMPlayer的負載遠比vlc要低,個人感覺SMPlayer的負載是vlc的1/3
vlc的安裝包也更大
因此個人選擇SMPlayer,對vlc有需求的,可以直接在鏡像內執行 apt-get install vlc
其他視頻播放器也同理
dupeguru-重復文件檢索
https://dupeguru.voltaicideas.net/
nas下重復文件檢索也是必須的功能,dupeguru是帶ui的較好的方案
安裝時遇到一些問題,不過解決了
Chromium
這是底包自帶的
UI中文語言支持
已安裝,啟動時指定環境變量生效
補充
vnc 底包結合需要安裝的軟件試了多種
aicampbell/vnc-ubuntu18-xfce
https://github.com/accetto/ubuntu-vnc-xfce
https://github.com/accetto/ubuntu-vnc-xfce-g3
最終選擇accetto/ubuntu-vnc-xfce-g3
總結
對cpu性能較強,且支持硬件直通的nas機器提升有限,因為可以用虛擬機+各種直通(網卡/硬盤/顯卡)的方案
對J1900之類低性能且不支硬件直通的nas 提升較大
docker的方案,整體cpu負載比虛擬機低倒是其次,主要是io的負載,不支持硬件直通的nas,除了虛擬磁盤,只能是宿主機開smb/nfs,虛擬機掛載smb/nfs之類方案,io的負載都較高
docker的方案,可以直接掛載宿主機的目錄,對不支持硬件直通的設備更友好,io幾乎無額外開銷
負載低,耗電量也低
2019年末入了蝸牛星際的坑,然后開始入nas的坑
因為本人工作一部分就涉及linxu集群,kubernetes/k8s,大數據組件的管理和運維,對docker也比較熟悉,所以也因需整理了一些nas相關的鏡像
這個鏡像,斷斷續續花費了個人兩周左右,太折騰人了
本來只是自已在使用
目前個人升級了nas方案,該方案對我個人意義降低,調整優化了下鏡像,共享出來,供需要的人使用
官方的krusader中文亂碼,個人加了中文支持https://hub.docker.com/repository/docker/cclient/krusader-chinese
有時間會介紹下自已的nas方案,並做些簡單教程
End