如何在 Container Station 進行偵錯並修復常見的容器問題?
Container Station 能讓您在 QNAP 裝置部署第三方應用程式與容器。但用於建立這些容器的開源映像檔可能會產生部署問題。
QNAP 不提供第三方映像檔的技術支援,請依照下列步驟診斷並解決常見的容器相關問題。
檢查容器設置
容器會繼承來源映像檔的所有屬性。請在部署之前掃描映像檔來識別安全漏洞、錯誤設定與後門威脅。
如果在部署容器之後遇到問題,請分析容器記錄,進行診斷並解決問題。
檢查映像檔資訊
請在部署容器之前,檢視映像檔必備條件並完成任何必要步驟。
例如,使用 postgres
映像檔部署 PostgreSQL 容器需要設定 POSTGRES_PASSWORD
環境變數。沒有此變數,容器將無法部署。
POSTGRES_PASSWORD
環境變數。分析 Container Station 事件記錄
Container Station 記錄所有應用與容器活動。故障記錄提供明確的錯誤訊息,包括應用程式或容器名稱、錯誤代碼與錯誤詳細資訊。
- 開啟[Container Station]。
- 按一下[事件記錄]。
- 找到故障記錄。
範例 1
在此範例,事件記錄已記錄啟動失敗,因為指定的連接埠已被其他服務使用,從而阻止容器綁定到所需的網路介面。
範例 2
在此範例,事件記錄已記錄由於進入點命令錯誤設定,而導致的啟動失敗,使容器無法執行預期的程序。
檢查個別容器記錄
分析單一容器記錄的錯誤與警告訊息。Container Station 記錄詳細的錯誤狀態,例如缺少環境變數、無效的命名格式、映像檔檢索失敗與初始化失敗。
- 開啟[Container Station]。
- 按一下[容器]。
- 選擇容器以開啟詳細資訊頁面。
- 按一下[記錄]。
- 檢查錯誤與警告訊息。
範例 1
事件記錄已記錄啟動失敗,因為在部署 MySQL 容器之前未設定 MYSQL_ROOT_PASSWORD
環境變數,導致初始化後立即退出。
範例 2
事件記錄已記錄啟動失敗,因為使用 rancher/rancher
映像檔部署 Rancher 容器時,未啟用特權模式。若無 --privileged
旗標,容器就無法正確初始化。
驗證映像檔相容性
確認映像檔相容於 QNAP 裝置的處理器架構與作業系統。不正確的映像檔版本或架構會導致容器無法運作。
檢查平台相容性
驗證映像檔平台是否與 QNAP 裝置的 CPU 架構匹配。如果從另一台 QNAP 裝置傳輸映像檔,請確認兩台裝置使用相同的架構。
Docker
Docker 映像檔頁面提供個別映像檔版本所支援的架構與作業系統清單。下列是 Docker 映像檔的一般相容性指南:
linux/arm/v7
映像檔支援 32 位元 ARM 架構。linux/arm64/v8
映像檔支援 64 位元 ARM 架構。linux/amd64
映像檔支援 64 位元 x86 架構。
LXD
如需相容性的詳細資訊,請造訪 LXD 映像檔伺服器。下列是 LXD 容器的一般架構相容性指南:
armhf
容器支援 32 位元 ARM 架構。arm64
容器支援 64 位元 ARM 架構。amd64
容器支援 64 位元 x86 架構。
識別容器的不相容性
不相容的 Docker 容器可能會記錄 exec format error
,表示架構不匹配。
如部署不相容的 LXD 容器時,Container Station 會在事件記錄頁面記錄失敗記錄。
檢查頁面大小相容性
QNAP 將系統頁面大小從 4K 更新為 32K,專為 32 位元 ARM 裝置增強效能。此變更可能會限制容器對記憶體資源的存取,從而導致分割錯誤。請在部署之前驗證第三方容器相容性。
系列 | 型號 |
---|---|
TS-x31P | TS-531P |
TS-x31P3 | TS-231P3、TS-431P3 |
TS-x31X | TS-231X、TS-431X、TS-531X、TS-831X、TS-431X2、TS-431X3 |
TS-x31KX | TS-431KX |
TS-x31XU | TS-431XU、TS-431XU-RP、TS-831XU、TS-831XU-RP、TS-1231XU、TS-1231XU-RP |
TS-x31XeU | TS-431XeU |
TS-x35 | TS-1635 |
檢查 QNAP 系統配置
請確認 QNAP 裝置已妥善配置容器部署與其協調性。
驗證網路設定
- 登入您的 QNAP 裝置並開啟[網路與虛擬交換器]。
- 選擇[進階]模式。
- 前往[網路]>[虛擬交換器]。
- 識別容器網路所使用的網路區段。
- 前往[控制台]>[系統]>[安全設定]>[允許/拒絕清單]。備註如果裝置已安裝 QuFirewall,請確認已啟用該程式,然後開啟 QuFirewall,並將所需的網路區段新增至允許清單。
- 請確認容器網路區段已新增至允許清單。重要事項QNAP 強烈建議您將下列 IP 範圍新增至允許清單:
10.0.3.0/24
、10.0.5.0/24
、10.0.7.0/24
、172.29.0.0/22
、172.30.0.0/22
。如果 Kubernetes 服務已啟用,還需新增10.42.0.0/24
(Kubernetes Pod 網路 CIDR)。
檢查進階權限設定
- 前往[控制台]>[權限]>[共用資料夾]>[進階權限]
- 停用[啟動進階資料夾權限]。
- 按一下[套用]。
- 前往[控制台]>[權限]>[配額]並檢查使用者配額限制。備註配額設定僅在啟用配額管理時才適用。警告檢查使用者配額設定,可確保未有非預期的配額限制。意外的配額設定可能會因儲存限制,導致容器回報錯誤。
驗證儲存空間與網路設定
- 前往[儲存與快照總管]>[儲存空間]>[儲存空間/快照]。
- 檢查可用的儲存容量。備註如果狀態非就緒,請檢查磁碟狀態是否發生儲存空間錯誤。如需詳細資訊,請參閱:QTS 或 QuTS hero 使用手冊中的〈磁碟狀態〉。
檢查網路設定
請依照下列步驟,確認網路設定正確設置:
- 前往[網路與虛擬交換器]>[網路]>[介面],然後檢查 DNS 與閘道設定。
- 請確認 DHCP 伺服器可以透過虛擬交換器為容器指派 IP 位址。如需詳細資訊,請參閱:QTS 或 QuTS hero 使用手冊的〈虛擬交換器設定〉。備註虛擬交換器配置中的[不指定 IP 位址 (用於特殊目的,例如建置外部網路或隔離網路)]設定,適用於特定的網路配置。如果您不需要自訂網路設定,建議停用此設定。
但是,如果您正在設定外部或隔離網路,請啟用該設定。請注意,此設定可能會影響容器的網路設置。如需詳細資訊,請參閱:QTS 或 QuTS hero 使用手冊的〈建立進階模式的虛擬交換器〉。 - 前往[Container Station]>[偏好設定]>[網路設定],並確認容器網路區段未與本機環境衝突。重要事項Container Station 使用
10.0.3.0/24
、10.0.5.0/24
與10.0.7.0/24
作為預設 IP 網路。
參考線上說明與文件
一些開源映像檔允許使用者修改原始程式碼。如果所有故障排除方法都無法解決問題,則來源映像檔可能不相容或已損壞。在這種情況下,QNAP 建議您造訪映像檔網站來尋找更多資訊,或使用相同類型的替代映像檔。
如果映像檔是來自 Docker registry,您可在映像檔的「總覽」頁面找到映像檔的詳細資訊。例如,在 Docker 的 Ubuntu 映像檔提供更多相關資訊的快速參考連結。