在 Container Station 3 中如何設定及部署自訂應用程式範本?
Container Station 應用程式範本可讓您將預先設定的容器部署到 QNAP 環境中。依預設,Container Station 提供一組 QNAP 驗證版本,但您可以根據自己的特定需求,新增其他自訂應用程式範本。您可以直接在 QNAP 裝置上或在外部網站伺服器上託管這些自訂應用程式範本。
本篇教學文章說明在 QNAP 裝置上託管自訂應用程式範本的兩種方式,以及如何設定 Container Station 存取這些自訂應用程式範本。
建立自訂應用程式範本檔案
第一步是建立自訂應用程式範本檔案。依預設,Container Station 提供了一份經過驗證的容器清單,這些容器搭配 QNAP 裝置正常運作。您可以在這裡下載 QNAP 驗證範本來修改,也可以自行建立新檔案。
您可以使用文字編輯器來修改範本檔案。
應用程式範本格式
應用程式範本定義是使用 JSON 編寫。有效的範本由一個陣列,以及一或多個容器範本元素所組成。每個容器範本元素都是一個 JSON 物件,其中包括任何必要或選用的資料欄位。格式應類似以下示例:
{
“templates”: [
{
// template1
},
{
// template2
},
...
]
}
JSON 元素格式
type
|
屬性 |
描述 |
|---|---|
|
描述 |
此範本的容器 (Docker 或 LXD) 類型。 |
|
重要性 |
必要 |
|
格式 |
整數 |
|
接受的值 |
|
title
|
屬性 |
描述 |
|---|---|
|
描述 |
範本的標題。 |
|
重要性 |
必要 |
|
格式 |
字串 |
|
接受的值 |
任何字串值 |
sub_title
|
屬性 |
描述 |
|---|---|
|
描述 |
範本版本的相關資訊。 |
|
重要性 |
必要 |
|
格式 |
字串 |
|
接受的值 |
任何字串值 |
description
|
屬性 |
描述 |
|---|---|
|
描述 |
用於提供版本相關資訊的描述。 |
|
重要性 |
必要 |
|
格式 |
字串 |
|
接受的值 |
任何字串值 |
logo
|
屬性 |
描述 |
|---|---|
|
描述 |
範本的標誌位置。 |
|
重要性 |
非必要 |
|
格式 |
字串 |
|
接受的值 |
網路網域的任何有效 URL 或相對路徑,用於託管自訂應用程式範本。 |
location
|
屬性 |
描述 |
|---|---|
|
描述 |
範本 URL。可為範本的簡介網頁。 |
|
重要性 |
非必要 |
|
格式 |
字串 |
|
接受的值 |
任何有效的 URL |
platform
|
屬性 |
描述 |
|---|---|
|
描述 |
支援的平台。必須包含有效值。 |
|
重要性 |
必要 |
|
格式 |
字串 |
|
接受的值 |
|
|
範例 |
|
image
|
屬性 |
描述 |
|---|---|
|
描述 |
與範本相關聯的映像檔。 |
|
重要性 |
必要 |
|
格式 |
字串 |
|
接受的值 |
任何有效的映像檔 |
|
範例 |
|
command
|
屬性 |
描述 |
|---|---|
|
描述 |
在 Docker 容器中執行的命令。如果未指定,容器會使用 Dockerfile 中指定的預設命令。 |
|
重要性 |
非必要 |
|
格式 |
字串 |
|
接受的值 |
任何字串值 |
|
範例 |
|
entrypoint
|
屬性 |
描述 |
|---|---|
|
描述 |
啟動 Docker 容器的端點。如果未指定,容器會使用 Dockerfile 中指定的預設端點。 |
|
重要性 |
非必要 |
|
格式 |
字串 |
|
接受的值 |
任何字串值 |
|
範例 |
|
env
|
屬性 |
描述 |
|---|---|
|
描述 |
描述範本所需環境變數的 JSON 陣列。陣列中的每個元素都必須是有效的 JSON 物件。 |
|
重要性 |
非必要 |
|
格式 |
陣列 |
|
接受的值 |
有效的 JSON 陣列 |
|
陣列格式 |
|
|
範例 |
|
labels
|
屬性 |
描述 |
|---|---|
|
描述 |
描述與範本相關聯之標籤的 JSON 陣列。陣列中的每個元素都必須是有效的 JSON 物件。 |
|
重要性 |
非必要 |
|
格式 |
陣列 |
|
接受的值 |
有效的 JSON 陣列 |
|
陣列格式 |
|
|
範例 |
|
volumes
|
屬性 |
描述 |
|---|---|
|
描述 |
描述與範本相關聯之磁碟區的 JSON 陣列。陣列中的每個元素都必須是有效的 JSON 物件且具有必要的容器屬性。 |
|
重要性 |
非必要 |
|
格式 |
陣列 |
|
接受的值 |
有效的 JSON 陣列 |
|
陣列格式 |
|
|
範例 |
|
ports
|
屬性 |
描述 |
|---|---|
|
描述 |
描述範本所公開之連接埠的 JSON 陣列。陣列中的每個元素都必須是有效的 JSON 字串,並指定容器中的埠號及通訊協定。這可以選擇使用埠號和冒號 (例如 8080:) 作為前置字元,以定義在主機上對應的連接埠。如果未指定主機連接埠,Docker 主機會在容器啟動時自動指派連接埠。 |
|
重要性 |
非必要 |
|
格式 |
陣列 |
|
接受的值 |
有效的 JSON 陣列 |
|
範例 |
|
hostname
|
屬性 |
描述 |
|---|---|
|
描述 |
容器的主機名稱。有助於輕易識別出容器。 |
|
重要性 |
非必要 |
|
格式 |
字串 |
|
接受的值 |
任何字串值 |
|
範例 |
|
restart_policy
|
屬性 |
描述 |
|---|---|
|
描述 |
與 Docker 容器相關聯的重新啟動原則。如果未指定,此值預設為unless-stopped。 |
|
重要性 |
非必要 |
|
格式 |
字串 |
|
接受的值 |
|
|
範例 |
|
auto_start_policy
|
屬性 |
描述 |
|---|---|
|
描述 |
與 LXD 容器相關聯的自動啟動原則。如果未指定,此值預設為retain。 |
|
重要性 |
非必要 |
|
格式 |
字串 |
|
接受的值 |
|
|
範例 |
|
interactive
|
屬性 |
描述 |
|---|---|
|
描述 |
控制 Docker 容器是否應在前景模式下啟動。如果未指定,則預設值為true。 |
|
重要性 |
非必要 |
|
格式 |
布林值 |
|
接受的值 |
|
|
範例 |
|
tty
|
屬性 |
描述 |
|---|---|
|
描述 |
控制是否應為 Docker 容器分配虛擬 TTY。如果未指定,則預設為true。 |
|
重要性 |
非必要 |
|
格式 |
布林值 |
|
接受的值 |
|
|
範例 |
|
privileged
|
屬性 |
描述 |
|---|---|
|
描述 |
控制容器是否應在前景模式下啟動。如果未指定,則預設為false。 |
|
重要性 |
非必要 |
|
格式 |
布林值 |
|
接受的值 |
|
|
範例 |
|
在 NGINX 容器中託管自訂應用程式範本
接下來,您必須使自訂應用程式範本可用於 Container Station。本主題將說明如何以 NGINX 容器(此容器也在 Container Station 中執行)託管範本檔案。
或者,您也可以在 QNAP 網站伺服器中託管應用程式範本檔案。請參見:以 QNAP 網站伺服器託管自訂應用程式範本。
在更新自訂應用程式範本 JSON 檔案後,您必須重新啟動 NGINX 容器,變更才能反映在容器中。
應用程式範本檔案將變為可供使用的狀態。
若要驗證應用程式範本檔案是否可以存取,您可以在網頁瀏覽器中輸入 http://HOST_IP_ADDRESS:PUBLISHED_HOST_PORT/TEMPLATE_FILENAME。範例:http://192.168.1.1:30080/my-templates.json.
以 QNAP 網站伺服器託管自訂應用程式範本
接下來,您必須使自訂應用程式範本可用於 Container Station。本主題說明以 QNAP 網站伺服器託管範本檔案的程序。
或者,您也可以直接在 Container Station 中使用 NGINX 容器託管應用程式範本檔案。請參見:在 NGINX 容器中託管自訂應用程式範本。
- 啟用 QTS 網站伺服器。
- 上傳自訂應用程式範本檔案。
應用程式範本檔案將變為可供使用的狀態。
若要驗證應用程式範本檔案是否可以存取,您可以在網頁瀏覽器中輸入 http://HOST_IP_ADDRESS:WEB_SERVER_PORT/TEMPLATE_FILENAME。範例:http://192.168.1.1:80/my-templates.json.
將自訂應用程式範本新增到 Container Station
下一步是,將自訂應用程式範本檔案新增到 Container Station,這樣就可以在 Container Station 中使用應用程式範本清單。
Container Station 將儲存自訂應用程式範本。



。



