如何在 Container Station 3 中配置并部署自定义应用程序模板?
Container Station 应用程序模板可用于将预配置的容器部署到您的 QNAP 环境中。默认情况下,Container Station 会提供一组经过 QNAP 验证的模板,但您也可以添加其他自定义应用程序模板来满足您的特定需求。您可以直接将这些自定义应用程序模板托管到 QNAP 设备或外部 Web 服务器上。
本教程介绍在 QNAP 设备上托管自定义应用程序模板的两种方法,以及如何配置 Container Station 以访问这些自定义应用程序模板。
- 创建自定义应用程序模板文件
- 在 NGINX 容器中托管自定义应用程序模板
- 使用 QNAP Web 服务器托管自定应用程序模板
- 将自定义应用程序模板添加到 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 使用。本主题介绍使用也在 Container Station 中运行的 NGINX 容器托管模板文件的过程。
您也可以在 QNAP Web 服务器中托管应用程序模板文件。请参见使用 QNAP Web 服务器托管自定应用程序模板。
更新自定义应用程序模板 JSON 文件后,必须重新启动 NGINX 容器,以在容器中反映这些更改。
应用程序模板文件随即可供使用。
您可以通过在 Web 浏览器中输入“http://主机 IP 地址:发布的主机端口/模板文件名”,来验证应用程序模板文件是否可访问。例如:http://192.168.1.1:30080/my-templates.json。
使用 QNAP Web 服务器托管自定应用程序模板
接下来,需要使自定义应用程序模板可供 Container Station 使用。本主题介绍使用 QNAP Web 服务器托管模板文件的过程。
也可以直接在 Container Station 中使用 NGINX 容器托管应用程序模板文件。请参见在 NGINX 容器中托管自定义应用程序模板。
- 启用 QTS Web 服务器。
- 上传自定义应用程序模板文件。
应用程序模板文件随即可供使用。
您可以通过在 Web 浏览器中输入“http://主机 IP 地址:Web 服务器端口/模板文件名”,来验证应用程序模板文件是否可访问。例如:http://192.168.1.1:80/my-templates.json。
将自定义应用程序模板添加到 Container Station
下一步是将自定义应用程序模板文件添加到 Container Station。随后,便可在 Container Station 中看到应用程序列表。
Container Station 随即会保存自定义应用程序模板。