¿Cómo configurar e implementar plantillas de aplicaciones personalizadas en Container Station 3?
Las plantillas de aplicaciones de Container Station le permiten implementar contenedores preconfigurados en su entorno de QNAP. De forma predeterminada, Container Station proporciona un conjunto de plantillas verificadas por QNAP, pero puede añadir otras plantillas de aplicaciones personalizadas que satisfagan sus necesidades específicas. Puede alojar estas plantillas de aplicaciones personalizadas directamente en su dispositivo QNAP o en un servidor web externo.
En este tutorial se explican dos métodos para alojar plantillas de aplicaciones personalizadas en su dispositivo QNAP, así como el modo de configurar Container Station para acceder a dichas plantillas de aplicaciones personalizadas.
- Creación de un archivo de plantillas de aplicaciones personalizadas
- Alojamiento de una plantilla de aplicaciones personalizadas en un contenedor NGINX
- Alojamiento de una plantilla de aplicaciones personalizadas con el servidor web de QNAP
- Adición de una plantilla de aplicaciones personalizadas a Container Station
- Implementación de una plantilla de aplicaciones personalizadas
Creación de un archivo de plantillas de aplicaciones personalizadas
El primer paso es crear un archivo de plantillas de aplicaciones personalizadas. De forma predeterminada, Container Station proporciona con su dispositivo QNAP una lista de contenedores que se ha verificado que funcionan correctamente. Puede descargar y modificar plantillas verificadas por QNAP aquí, o bien crear por su cuenta un nuevo archivo.
Puede modificar el archivo de plantillas con cualquier editor de texto.
Formato de la plantilla de aplicaciones
Las definiciones de las plantillas de aplicaciones se escriben en JSON. Las plantillas válidas constan de una matriz y uno o más elementos de la plantilla de contenedor. Cada elemento de la plantilla de contenedor es un objeto JSON que incluye cualquier campo de datos obligatorio u opcional. El formato debe ser similar al del siguiente ejemplo:
{
“templates”: [
{
// template1
},
{
// template2
},
...
]
}
Formato de elemento JSON
type
|
Atributo |
Descripción |
|---|---|
|
Descripción |
El tipo de contenedor (Docker o LXD) para esta plantilla. |
|
Importancia |
Obligatorio |
|
Formato |
Número entero |
|
Valores aceptados |
|
title
|
Atributo |
Descripción |
|---|---|
|
Descripción |
El título de la plantilla. |
|
Importancia |
Obligatorio |
|
Formato |
Cadena |
|
Valores aceptados |
Cualquier valor de cadena |
sub_title
|
Atributo |
Descripción |
|---|---|
|
Descripción |
Información acerca de la versión de la plantilla. |
|
Importancia |
Obligatorio |
|
Formato |
Cadena |
|
Valores aceptados |
Cualquier valor de cadena |
description
|
Atributo |
Descripción |
|---|---|
|
Descripción |
Descripción usada para proporcionar información acerca de la plantilla. |
|
Importancia |
Obligatorio |
|
Formato |
Cadena |
|
Valores aceptados |
Cualquier valor de cadena |
logo
|
Atributo |
Descripción |
|---|---|
|
Descripción |
La ubicación de un logotipo para la plantilla. |
|
Importancia |
Opcional |
|
Formato |
Cadena |
|
Valores aceptados |
Cualquier URL o ruta válidos relativos al dominio de red donde está alojada la plantilla de aplicación personalizada. |
location
|
Atributo |
Descripción |
|---|---|
|
Descripción |
El URL de la plantilla. Puede ser una página web de introducción para la plantilla |
|
Importancia |
Opcional |
|
Formato |
Cadena |
|
Valores aceptados |
Cualquier URL válido. |
platform
|
Atributo |
Descripción |
|---|---|
|
Descripción |
La plataforma admitida. Debe contener un valor válido. |
|
Importancia |
Obligatorio |
|
Formato |
Cadena |
|
Valores aceptados |
|
|
Ejemplo |
|
image
|
Atributo |
Descripción |
|---|---|
|
Descripción |
La imagen asociada con una plantilla. |
|
Importancia |
Obligatorio |
|
Formato |
Cadena |
|
Valores aceptados |
Cualquier imagen válida |
|
Ejemplo |
|
command
|
Atributo |
Descripción |
|---|---|
|
Descripción |
El comando que se ejecuta en el contenedor Docker. Si no se especifica, el contenedor usa el comando predeterminado especificado en el Dockerfile. |
|
Importancia |
Opcional |
|
Formato |
Cadena |
|
Valores aceptados |
Cualquier valor de cadena |
|
Ejemplo |
|
entrypoint
|
Atributo |
Descripción |
|---|---|
|
Descripción |
El punto de entrada para iniciar el contenedor Docker. Si no se especifica, el contenedor usa el punto de entrada predeterminado especificado en el Dockerfile. |
|
Importancia |
Opcional |
|
Formato |
Cadena |
|
Valores aceptados |
Cualquier valor de cadena |
|
Ejemplo |
|
env
|
Atributo |
Descripción |
|---|---|
|
Descripción |
Matriz JSON que describe las variables de entorno requeridas por una plantilla. Cada elemento de la matriz debe ser un objeto JSON válido. |
|
Importancia |
Opcional |
|
Formato |
Matriz |
|
Valores aceptados |
Una matriz JSON válida |
|
Formato de la matriz |
|
|
Ejemplo |
|
labels
|
Atributo |
Descripción |
|---|---|
|
Descripción |
Matriz JSON que describe las etiquetas asociadas con una plantilla. Cada elemento de la matriz debe ser un objeto JSON válido. |
|
Importancia |
Opcional |
|
Formato |
Matriz |
|
Valores aceptados |
Una matriz JSON válida |
|
Formato de la matriz |
|
|
Ejemplo |
|
volumes
|
Atributo |
Descripción |
|---|---|
|
Descripción |
Matriz JSON que describe los volúmenes asociadas con una plantilla. Cada elemento de la matriz debe ser un objeto JSON válido con una propiedad de contenedor obligatoria. |
|
Importancia |
Opcional |
|
Formato |
Matriz |
|
Valores aceptados |
Una matriz JSON válida |
|
Formato de la matriz |
|
|
Ejemplo |
|
puertos
|
Atributo |
Descripción |
|---|---|
|
Descripción |
Matriz JSON que describe los puertos expuestos por una plantilla. Cada elemento de la matriz debe ser una cadena JSON válida que especifica el número de puerto del contenedor, así como el protocolo. Esto puede llevar opcionalmente como prefijo un número de puerto y dos puntos (por ejemplo, 8080:) para definir el puerto que se está asignando en el host. Si no se especifica el puerto del host, el host del Docker asigna automáticamente un puerto cuando se inicia el contenedor. |
|
Importancia |
Opcional |
|
Formato |
Matriz |
|
Valores aceptados |
Una matriz JSON válida |
|
Ejemplo |
|
hostname
|
Atributo |
Descripción |
|---|---|
|
Descripción |
El nombre de host del contenedor. Puede ayudar a identificar con facilidad al contenedor. |
|
Importancia |
Opcional |
|
Formato |
Cadena |
|
Valores aceptados |
Cualquier valor de cadena |
|
Ejemplo |
|
restart_policy
|
Atributo |
Descripción |
|---|---|
|
Descripción |
La política de reinicio asociada con el contenedor Docker. Si no se especifica, el valor predeterminado es unless-stopped. |
|
Importancia |
Opcional |
|
Formato |
Cadena |
|
Valores aceptados |
|
|
Ejemplo |
|
auto_start_policy
|
Atributo |
Descripción |
|---|---|
|
Descripción |
La política de inicio automático asociada con el contenedor LXD. Si no se especifica, el valor predeterminado esretain. |
|
Importancia |
Opcional |
|
Formato |
Cadena |
|
Valores aceptados |
|
|
Ejemplo |
|
interactive
|
Atributo |
Descripción |
|---|---|
|
Descripción |
Controla si el contenedor Docker debe iniciarse en modo de primer plano. Si no se especifica, el valor predeterminado es true. |
|
Importancia |
Opcional |
|
Formato |
Booleano |
|
Valores aceptados |
|
|
Ejemplo |
|
tty
|
Atributo |
Descripción |
|---|---|
|
Descripción |
Controla si se debe asignar un TTY falso al contenedor Docker. Si no se especifica, el valor predeterminado estrue. |
|
Importancia |
Opcional |
|
Formato |
Booleano |
|
Valores aceptados |
|
|
Ejemplo |
|
privileged
|
Atributo |
Descripción |
|---|---|
|
Descripción |
Controla si el contenedor debe iniciarse en modo privilegiado. Si no se especifica, el valor predeterminado es false. |
|
Importancia |
Opcional |
|
Formato |
Booleano |
|
Valores aceptados |
|
|
Ejemplo |
|
Alojamiento de una plantilla de aplicaciones personalizadas en un contenedor NGINX
A continuación, deberá hacer que la plantillas de aplicaciones personalizadas esté disponible para Container Station. En este tema se explica el proceso de alojar el archivo de plantillas con un contenedor NGINX que también se ejecute en Container Station.
Como alternativa, también puede alojar el archivo de plantillas de aplicaciones en el servidor web de QNAP. Consulte Alojamiento de una plantilla de aplicaciones personalizadas con el servidor web de QNAP.
Después de actualizar el archivo JSON de plantillas de aplicaciones personalizadas, deberá reiniciar el contenedor NGINX para que los cambios se reflejen dentro del contenedor.
El archivo de plantillas de aplicaciones pasa a estar disponible para su uso.
Puede verificar que el archivo de plantillas de aplicaciones está accesible escribiendo http://HOST_IP_ADDRESS:PUBLISHED_HOST_PORT/TEMPLATE_FILENAME en el navegador web. Por ejemplo: http://192.168.1.1:30080/my-templates.json.
Alojamiento de una plantilla de aplicaciones personalizadas con el servidor web de QNAP
A continuación, deberá hacer que la plantillas de aplicaciones personalizadas esté disponible para Container Station. En este tema se explica el proceso de alojar el archivo de plantilla con el servidor web de QNAP.
Como alternativa, también se puede alojar el archivo de plantillas de aplicaciones con un contenedor NGINX directamente en Container Station. Consulte Alojamiento de una plantilla de aplicaciones personalizadas en un contenedor NGINX.
- Habilite el servidor web de QTS.
- Cargue el archivo de plantillas de aplicaciones personalizadas.
El archivo de plantillas de aplicaciones pasa a estar disponible para su uso.
Puede verificar que el archivo de plantillas de aplicaciones está accesible escribiendo http://HOST_IP_ADDRESS:WEB_SERVER_PORT/TEMPLATE_FILENAME en el navegador web. Por ejemplo: http://192.168.1.1:80/my-templates.json.
Adición de una plantilla de aplicaciones personalizadas a Container Station
El siguiente paso es añadir el archivo de plantillas de aplicaciones personalizadas a Container Station. De esta forma, la lista de aplicaciones disponibles estará disponible en Container Station.
Container Station guarda la plantilla de aplicación personalizada.
Implementación de una plantilla de aplicaciones personalizadas
El último paso es implementar un contenedor dese el archivo de plantillas de aplicaciones personalizadas que añadió en el paso anterior.
Se abrirá el asistente Implementar contenedor. Consulte Creación de un contenedor Docker.



.



