小刻也能看懂的Unraid系統使用手冊:Docker篇


小刻也能看懂的Unraid系統使用手冊

Docker篇

Unraid_DockerLogo

Docker可以做什么?

通過創建共享,並在其他計算機上訪問共享的方式,已經可以實現 NAS 的文件存儲和訪問功能了。但這僅僅是基礎功能,通過 Docker 提供的各種應用和服務,我們可以把這台 Unraid NAS 服務器變成家庭影音中心、私有網絡雲盤、24小時在線的下載機,還可以在服務器上搭建網站、博客等。

Docker的基礎知識

Docker 技術的思想來源於集裝箱,正如它的圖標所展示的那樣,通過 Docker 技術,開發者把應用程序和所需的運行環境放到一個“集裝箱”里,這些“集裝箱”之間互不影響,應用程序在各自的“集裝箱”里運行。通過這個技術,實現了應用程序之間互相隔離,避免了因為運行環境混亂導致的兼容問題和沖突。這讓應用和服務的部署變得非常輕松。你甚至可以通過 Docker 在同一個服務器上安裝多個相同的應用。

鏡像 Image

開發者把應用程序和所需的運行環境打包成為一個鏡像,然后發布出去,供使用者下載。鏡像是用來創建容器的。

容器 Container

使用者下載到應用的鏡像后,使用 Docker 運行,將會創建一個容器,應用在該容器里運行。因為容器內外是隔離的,所以如果要控制容器內的應用程序的話,則需要映射一個由主機到容器的端口。容器內的應用想要訪問容器外的文件,則需要設置一個磁盤路徑的映射。

倉庫 Repository

倉庫是開發者發布鏡像的地方,使用者可以在倉庫搜索鏡像,查看鏡像配置參數。

Docker 官方的鏡像倉庫地址:https://hub.docker.com/

查看Docker設置

Unraid 系統已經集成了 Docker 環境,通過 SETTINGS >> Docker 進入 Docker 設置界面。在這里可以查看當前運行的 Docker 版本,啟用或禁用 Docker。還有兩個路徑,是需要注意的:

Docker vDisk location

這是 Unraid 為 docker 運行創建的虛擬磁盤,安裝的所有 Docker 都在該虛擬磁盤上,它默認使用 /mnt/user/system/docker/docker.img 路徑,存放在 system 共享所在的磁盤上。

Default appdata storage location

這是容器內的應用數據存儲的位置。在使用者安裝 Docker 應用的時候,需要將 Docker 應用的配置文件路徑映射到這里,否則 Docker 重啟時會恢復默認設置。

安裝Docker應用

Unraid 提供了兩種安裝 Docker 應用的方式:一種是通過 Unraid 社區應用商店(Community Applications)安裝,另一種是通過 Docker 容器安裝。通過社區商店安裝較為簡單,但為了演示 Docker 參數配置的過程,也為了后續安裝一些社區商店沒有的 Docker,先使用 Docker 容器進行安裝。

1. 搜索 Docker 鏡像

以 FileBrowser 的安裝為例,FileBrowser 是一個有 WebGUI 的文件管理器,可以在線瀏覽服務器上的文件,支持上傳下載,支持一些媒體文件的播放,功能豐富。

首先,要去倉庫里搜索 FileBrowser 鏡像,訪問 hub.docker.com 在搜索欄輸入 FileBrowser 回車,搜索結果有很多,其中獲得 Stars 數量最多的是 FileBrowser 官方的鏡像,但這里我們選擇 80x86/filebrowser,它是開發者荒野無燈大神制作的增強版。點進去可以看到詳情頁面,這里有該 Docker 的介紹和開發者寫的安裝說明,接下來我們需要按照這個說明去配置 Docker 的參數完成安裝。

由於國內網絡的不穩定,hub.docker.com 這個網站可能無法訪問,這種情況可以通過修改 DNS 地址解決,比如修改為 114.114.114.114。如果修改 DNS 地址的方法無效,可以參考 Unraid中文版入門指南 中“使用Docker”部分的解決方法。

2. 閱讀 Docker 說明

安裝一個陌生的 Docker 時,一定要仔細閱讀它的說明文檔,Docker 的開發者一般會以表格的形式列出需要使用者配置的參數。在 FileBrowser 的說明文檔中,很容易就找到這些參數列表,如圖所示。這些參數分為下面幾種類型:

Unraid_DockerFBE_Para1

Unraid_DockerFBE_Para2

Path 路徑

前面介紹過 Docker 運行在容器里,容器與主機是隔離的,在容器里創建一個文件,容器外是無法訪問到的,為了讓 Docker 可以正常訪問修改主機上的文件,需要引入 Path 路徑參數。Path 參數要設置兩個值,一個是容器路徑,一個是主機路徑。通過 Path 的設置,Docker 訪問容器路徑的時候就相當於訪問了主機路徑。

在 FileBrowser 的參數列表中,/config/myfiles 就是容器路徑,作者在表格中詳細描述了這兩個路徑的用途。

/config 是配置文件的路徑,可以映射到 /mnt/user/appdata/FileBrowserEX/config 下。

/myfiles 是文件管理器根目錄,可以映射到 /mnt/user/Movies/ 目錄。

Port 端口映射

類似於路由器的端口映射,Port 參數也要設置兩個值,一個是容器的端口,一個是主機端口。通過端口映射讓主機可以訪問容器。

在 FileBrowser 的參數列表中,只需要配置一個 Port 參數。

Variable 變量

變量參數的數量一般比較多,作用也各不相同,常見的有:PUID(代表用戶ID),PGID(代表用戶組ID),WEB_PORT(端口號)等。

注意!這里的端口號指 Docker 使用的端口號,它的類型是變量,只需要填寫一個值。

而 Port 類型的端口,指端口映射,需要填寫兩個值。

Label 標記

暫時沒有用過這種類型的參數。TBD

Device 設備

這是一個特殊的參數,指定系統中的設備文件,主要用於加載硬件驅動。

在 FileBrowser 的文檔中給出了啟用核顯進行視頻編解碼的參數設置,就是利用 Device 參數添加了核顯的驅動。這里暫不去配置它,后續在配置 Jellyfin 硬件解碼的時候會用到。

3. 添加容器

在仔細閱讀了說明文檔,知道該設置哪些參數后,就可以開始安裝 Docker 了。實際上,安裝 Docker 就是用 Docker 的鏡像生成一個容器。

  1. 通過 DOCKER >> ADD CONTAINER 進入添加容器頁面
  2. Template 是模板,記錄以往添加容器時填寫的內容,因為這是第一次添加容器,所以沒有
  3. Name 是容器名稱,輸入 "FileBrowserEX"
  4. Repository 是 Docker 鏡像的地址,輸入 "80x86/filebrowser"
  5. 然后點擊 Add another Path, Port, Variable, Label or Device 鏈接來設置參數
  6. 需要按照 Docker 說明文檔,依次添加參數,如圖
  7. 全部填寫完成后點擊 APPLY 將開始下載鏡像並創建容器
  8. 如圖顯示 Successfully 表示容器創建完成!

Unraid_DockerFBE_AddConfigPath

Unraid_DockerFBE_AddConfigPort

Unraid_DockerFBE_AddContainer

Unraid_DockerFBE_Pulling

4. 使用 Docker

DOCKER 頁面可以看到系統中已有的容器,如圖所示,列表中已經顯示出剛才創建的 FileBrowserEX。在 PORT MAPPINGS(APP TO HOST) 一列顯示了容器 IP 端口和主機 IP 端口的對應關系,使用瀏覽器訪問右邊的主機地址 10.0.0.110:7001 就可以打開 FileBrowserEX 的 WebGUI 頁面進行使用了。

Unraid_Docker_AppList

5. Docker 高級選項

DOCKER 頁面點擊 FileBrowserEx 容器名稱超鏈接,進入修改容器設置的界面,點擊右上角的 BASIC VIEW(基礎視圖) 切換到 ADVANCED VIEW(高級視圖) 在這里可以進行容器高級選項的配置。

5.1 給 Docker 添加圖標

沒有圖標的 Docker 是沒有靈魂的,在參數列表中有 Icon URL 這一項,將找到的圖標網址粘貼到這里就可以給 Docker 指定漂亮的圖標了。

5.2 添加快捷鏈接

使用 Docker 要輸入 IP 地址和端口,非常麻煩,而且有時會忘記端口號。其實可以通過設置高級選項中的 WebUI 參數來給 Docker 添加一個快捷鏈接。

設置 WebUI 參數為 http://[IP]:[PORT:7001] 其中 "7001" 是 Docker 的主機端口號。

添加快捷鏈接后,可以直接點擊 Docker 圖標選擇 WebUI 進入網頁。

Unraid_Docker_AdvanceView

5.3 Extra Parameters 附加參數

附加參數是一個很容易被忽略的選項,很多作者在 Docker 發布頁的參數列表上並不會列出附加參數,而是把它寫在創建容器的命令里。比如在 FileBrowser 的說明文檔里就沒有提及附加參數這個選項,萌新可能會忽略了這個參數的填寫。所以說在安裝 Docker 的時候也要注意看一下它的命令行示例。

在 FileBrowser 說明文檔后面,有作者寫的通過命令行創建容器的示例代碼:

IMAGE_NAME=80x86/filebrowser 

WEB_PORT=8082
FB_AUTH_SERVER_ADDR="127.0.0.1"
mkdir -p $HOME/docker/fb/config $HOME/docker/fb/myfiles #創建文件夾的命令
podman run -d --name fb \
  --restart=unless-stopped \ #附加參數:容器自動重啟(這里不使用)
  -e PUID=$UID \             #變量:PUID
  -e PGID=$GID \             #變量:PGID
  -e WEB_PORT=$WEB_PORT \    #變量:端口號
  -e FB_AUTH_SERVER_ADDR=$FB_AUTH_SERVER_ADDR \  #變量:認證服務器地址(這里不使用)
  -p $WEB_PORT:$WEB_PORT \                       #端口映射:端口映射
  -v $HOME/docker/fb/config:/config \            #路徑:配置文件路徑
  -v $HOME/docker/fb/myfiles:/myfiles \          #路徑:根目錄路徑
  --mount type=tmpfs,destination=/tmp \          #附加參數:設置臨時文件掛載點
  ${IMAGE_NAME}:2.9.3-amd64

筆者在代碼上進行了注釋,可以看出來這段命令其實和創建 Docker 容器時配置參數的過程是一樣的。仔細觀察可以發現命令中有兩行和其他行不太一樣,分別是第一行 --restart=unless-stopped 和 最后一行 --mount type=tmpfs,destination=/tmp,這兩行其實就是附加參數。

第一個附加參數的意思容易理解,它是保證容器在異常退出后自動重啟的。第二個參數筆者一開始也不明所以,經過查找資料,才明白它的意思,它的意思是:在系統內存中分配一個用於存儲 tmp 臨時文件的磁盤,並掛載到 /tmp 容器路徑上。這個參數是可以提高 Docker 性能的。所以在高級視圖里把這段代碼粘貼到 Extra Parameters 選項里,應用設置並重建容器。

Unraid_DockerFBE_ExtraPara

Docker總結

雖然倉庫中的 Docker 應用種類繁多,功能各異 ,但它們的配置方法其實和上文中的 FileBrowser 所差無幾,無非是多幾個需要配置的參數,所以在安裝 Docker 的時候一定要仔細閱讀說明文檔,也要多參考網上其他作者寫的教程。

Unraid 還可以通過 “Community Applications” 社區應用商店來安裝 Docker,方法和上文大體相同,如果掌握了通過容器添加 Docker 的方法,那么通過社區商店安裝 Docker 將觸類旁通。

Community Applications

“Community Applications”(社區應用程序),包括 Unraid 社區的插件、Docker 容器和應用商城。若要安裝,請轉到“PLUGINS”(插件)標簽頁,選擇“Install Plugin”(安裝插件)並復制粘貼下列 URL 的其中之一:

https://gitee.com/BlueBuger/community.applications/raw/master/plugins/community.applications.plg

https://www.52help.net/ad/nas/Squidly271/community.applications/master/plugins/community.applications.plg

完成上述操作后,Unraid WebGUI 的頂部欄上方將會新增一個“APPS”(應用)選項卡。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM