Como configurar e implementar modelos de aplicação personalizados na Container Station 3?


Data da última modificação: 2023-03-27

Os modelos de aplicação Container Station permitem-lhe implementar contentores pré-configurados no seu ambiente QNAP. Por predefinição, a Container Station disponibiliza uma coleção de modelos verificados pela QNAP, mas pode adicionar modelos de aplicação personalizados adicionais para satisfazer as suas necessidades específicas. Pode alojar estes modelos da aplicação personalizados diretamente no seu dispositivo QNAP ou num servidor de internet externo.

Este tutorial explica dois métodos de alojamento de modelos de aplicação personalizados no seu dispositivo QNAP e a forma como configurar a Container Station para aceder a estes modelos de aplicação personalizados.

Criação de um ficheiro de modelo de Aplicação personalizado

O primeiro passo é criar um ficheiro de modelo de aplicação personalizado. Por predefinição, a Container Station fornece uma lista de contentores que são verificados para funcionarem corretamente com o seu dispositivo QNAP. Pode descarregar e modificar os modelos verificados pela QNAP aqui ou criar um novo ficheiro por si próprio.

Nota:

Pode modificar o ficheiro de modelo em qualquer editor de texto.

Formato do modelo da Aplicação

As definições dos modelos de aplicação são escritas em JSON. Os modelos válidos são constituídos por uma matriz e um ou mais elementos de modelo de contentor. Cada elemento do modelo de contentor é um objeto JSON que inclui quaisquer campos de dados obrigatórios ou opcionais. O formato deve ser semelhante ao do exemplo seguinte:

{
  “templates”: [
    {
      // template1
    },
    {
      // template2
    },
    ...
  ]
}

Formato do Elemento JSON

tipo

Atributo

Descrição

Descrição

O tipo de contentor (Docker ou LXD) para este modelo.

Importância

Obrigatório

Formato

Íntegro

Valores aceites

  • 1: Utilizado para contentores Docker.

  • 10: Utilizado para contentores LXD.

título

Atributo

Descrição

Descrição

O título do modelo.

Importância

Obrigatório

Formato

Segmento

Valores aceites

Qualquer valor de segmento

sub_título

Atributo

Descrição

Descrição

Informação sobre a versão do modelo.

Importância

Obrigatório

Formato

Segmento

Valores aceites

Qualquer valor de segmento

descrição

Atributo

Descrição

Descrição

Uma descrição utilizada para fornecer informações sobre o modelo.

Importância

Obrigatório

Formato

Segmento

Valores aceites

Qualquer valor de segmento

logótipo

Atributo

Descrição

Descrição

A localização de um logótipo para o modelo.

Importância

Opcional

Formato

Segmento

Valores aceites

Qualquer URL ou caminho válido relativo ao domínio de rede onde o modelo de aplicação personalizado está alojado.

localização

Atributo

Descrição

Descrição

O URL do modelo. Pode ser uma página de internet de introdução ao modelo.

Importância

Opcional

Formato

Segmento

Valores aceites

Qualquer URL válido

plataforma

Atributo

Descrição

Descrição

A plataforma suportada. Deve conter um valor válido.

Importância

Obrigatório

Formato

Segmento

Valores aceites

  • linux: Todas as plataformas

  • linux/amd64: 64-bit x86

  • linux/arm64: 64-bit ARM

  • linux/arm: 32-bit ARM

Exemplo

{
  "platform": "linux/amd64"
}

imagem

Atributo

Descrição

Descrição

A imagem associada a um modelo.

Importância

Obrigatório

Formato

Segmento

Valores aceites

Qualquer imagem válida

Exemplo

{
  "image": "nginx:latest"
}

comando

Atributo

Descrição

Descrição

O comando para executar no contentor Docker. Se não for especificado, o contentor utiliza o comando predefinido especificado no Dockerfile.

Importância

Opcional

Formato

Segmento

Valores aceites

Qualquer valor de segmento

Exemplo

{
  "command": "nginx -g 'daemon off;'"
}

ponto de entrada

Atributo

Descrição

Descrição

O ponto de entrada para iniciar o contentor Docker. Se não for especificado, o contentor utiliza o ponto de entrada predefinido especificado no Dockerfile.

Importância

Opcional

Formato

Segmento

Valores aceites

Qualquer valor de segmento

Exemplo

{
  "entrypoint": "/docker-entrypoint.sh"
}

env

Atributo

Descrição

Descrição

Uma matriz JSON descrevendo as variáveis de ambiente exigidas por um modelo. Cada elemento da matriz deve ser um objeto JSON válido.

Importância

Opcional

Formato

Matriz

Valores aceites

Uma matriz JSON válida

Formato da matriz

  • name: (Obrigatório) O nome da variável de ambiente tal como suportada na imagem do contentor.

  • value: (Obrigatório) O valor associado à variável.

Exemplo

{
  "env": [
    { "name": "ENV_VAR1", "value": "" },
    { "name": "ENV_VAR2", "value": "value2" }
  ]
}

etiquetas

Atributo

Descrição

Descrição

Uma matriz JSON descrevendo as etiquetas associadas a um modelo. Cada elemento da matriz deve ser um objeto JSON válido.

Importância

Opcional

Formato

Matriz

Valores aceites

Uma matriz JSON válida

Formato da matriz

  • name: (Obrigatório) O nome da chave da etiqueta.

  • value: (Obrigatório) O valor associado à chave.

Exemplo

{
  "labels": [
    { "name": "com.example.vendor", "value": "Acme Incorporated" },
    { "name": "com.example.label-with-value", "value": "foo" },
    { "name": "version", "value": "1.0" }
  ]
}

volumes

Atributo

Descrição

Descrição

Uma matriz JSON descrevendo os volumes associados a um modelo. Cada elemento da matriz deve ser um objeto JSON válido com uma propriedade de contentor obrigatória.

Importância

Opcional

Formato

Matriz

Valores aceites

Uma matriz JSON válida

Formato da matriz

  • container: (Obrigatório) O caminho do contentor.

  • volume: (Opcional) O nome do volume Docker.

  • bind: (Opcional para contentores Docker, Obrigatório para contentores LXD) O caminho do anfitrião utilizado como fonte de uma montagem de vinculação.

  • readonly: (Opcional) Se definido paratrue, o volume é montado em modo só de leitura.

Exemplo

{
  "volumes": [
    {
      "container": "/usr/share/nginx/html"
    },
    {
      "container": "/usr/share/nginx/html"
      "volume": "nginx-vol"
    },
    {
      "container": "/usr/share/nginx/html/my-templates.json",
      "bind": "/Container/my-templates.json  ",
      "readonly": true
    }
  ]
}

portas

Atributo

Descrição

Descrição

Uma matriz JSON descrevendo as portas expostas por um modelo. Cada elemento da matriz deve ser um segmento JSON válido especificando o número da porta no contentor, bem como o protocolo. Opcionalmente, isto pode ser pré-fixado com um número de porta e dois pontos (por exemplo 8080:) para definir a porta a mapear no anfitrião. Se a porta do anfitrião não for especificada, o anfitrião do Docker atribui automaticamente uma porta quando o contentor arranca.

Importância

Opcional

Formato

Matriz

Valores aceites

Uma matriz JSON válida

Exemplo

{
  "ports": ["8080:80/tcp", "443/tcp", "80/udp"]
}

nome do anfitrião

Atributo

Descrição

Descrição

O nome do anfitrião do contentor. Pode ajudar a identificar facilmente o contentor.

Importância

Opcional

Formato

Segmento

Valores aceites

Qualquer valor de segmento

Exemplo

{
  "hostname": "myContainerHostName"
}

reinício_política

Atributo

Descrição

Descrição

A política de reinício associada ao contentor Docker. Se não for especificado, este valor é o predefinido paraunless-stopped.

Importância

Opcional

Formato

Segmento

Valores aceites

  • no: Não reiniciar automaticamente o contentor.

  • on-failure: Reinicie o contentor se sair devido a erros, por exemplo, em caso de código de saída diferente de zero.

  • always: Reinicie sempre o contentor se este parar. Se for parado manualmente, só reinicia quando a Container Station reiniciar ou se reiniciar manualmente o contentor.

  • unless-stopped: Semelhante a Sempre, exceto quando o contentor é parado manualmente, não reinicia mesmo após o reinício da Container Station.

Exemplo

{
  "restart_policy": "unless-stopped"
}

automático_início_política

Atributo

Descrição

Descrição

A política de início automático associada ao contentor LXD. Se não for especificado, este valor é o predefinido pararetain.

Importância

Opcional

Formato

Segmento

Valores aceites

  • no: Não reiniciar automaticamente o contentor.

  • always: Reinicie sempre o contentor se este parar. Se for parado manualmente, só reinicia quando a Container Station reiniciar ou se reiniciar manualmente o contentor.

  • retain: Semelhante a Sempre, exceto quando o contentor é parado manualmente, não reinicia mesmo após o reinício da Container Station.

Exemplo

{
  "auto_start_policy": "retain"
}

interativo

Atributo

Descrição

Descrição

Controla se o contentor Docker deve iniciar em modo de primeiro plano. Se não for especificado, o valor é predefinido paratrue.

Importância

Opcional

Formato

Booleano

Valores aceites

  • true: Inicia o contentor Docker em modo de primeiro plano.

  • false: Inicia o contentor em modo destacado.

Exemplo

{
  "interactive": false
}

tty

Atributo

Descrição

Descrição

Controla se ao contentor Docker deve ser atribuído um pseudo-TTY. Se não for especificado, é predefinido paratrue.

Importância

Opcional

Formato

Booleano

Valores aceites

  • true: Atribui um pseudo-TTY ao contentor Docker.

  • false: Não atribui um pseudo-TTY ao contentor Docker.

Exemplo

{
  "tty": false
}

privilegiado

Atributo

Descrição

Descrição

Controla se o contentor deve iniciar em modo privilegiado. Se não for especificado, é predefinido parafalse.

Importância

Opcional

Formato

Booleano

Valores aceites

  • true: Inicia o contentor em modo Privilegiado.

  • false: Não inicia o contentor em modo Privilegiado.

Exemplo

{
  "privileged": true
}

Alojamento de um modelo de Aplicação personalizado num Contentor NGINX

De seguida, deve disponibilizar o modelo de aplicação personalizado para a Container Station. Este tópico explica o processo de alojamento do ficheiro de modelo com um contentor NGINX também em funcionamento na Container Station.

Em alternativa, também pode alojar o ficheiro de modelo de aplicação no Servidor de Internet QNAP. Consulte Alojamento de um modelo de Aplicação personalizado com o Servidor de Internet QNAP.

Importante:

Depois de atualizar o ficheiro JSON dos modelos de aplicação personalizados, deve reiniciar o contentor NGINX para que as alterações produzirem efeitos no contentor.

  1. Carregar o ficheiro de modelo de Aplicação personalizado.
    1. Abra a File Station.
    2. Navegue para uma pasta no dispositivo.
    3. Carregue o ficheiro de modelo de Aplicação.
    4. Anote a localização do ficheiro do modelo para utilização posterior.
  2. Abra a Container Station.
  3. No painel superior, clique na seta junto a Explorar
  4. Selecione Criar Contentor.

    Abre-se a janela Criar Contentor.

  5. Selecione uma imagem.

    Definição

    Ação

    Modo

    Selecione o Modo Básico.

    Registo

    Selecione Docker Hub.

    Imagem

    Introduzanginx.

  6. Clique em Seguinte.
  7. Opcional: Configurar as definições do contentor.

    Definição

    Ação

    Nome

    Introduza um nome para o contentor. Por exemplo: nginx-my-template.

    Política de início automático

    Selecione Em caso de paragem.

    Esta opção fará com que o contentor reinicie sempre, exceto em caso de paragem manual por um utilizador.

    Configuração de rede

    Configure as definições para adaptar ao seu ambiente de rede.

    Neste tutorial, usamos o modo de rede Predefinida e enviamos tráfego para o contentor através da porta30080 no anfitrião.

    Nota:

    Se o campo Anfitrião não for especificado, a porta publicada pode ser alterada após o reinício do contentor. Isto pode fazer com que o modelo da aplicação se torne inacessível à Container Station.

  8. Opcional: Modificar as definições avançadas.
    1. Clique em Definições Avançadas.

      É exibida a janela Definições Avançadas.

    2. Aceda ao separador Armazenamento.
    3. Clique na seta junto a Adicionar Volume.
    4. Selecione Vincular caminho do anfitrião para instalação.

      É adicionada uma nova linha de armazenamento.

    5. Clique em .

      Abre-se a janela Selecionar Caminho do Anfitrião.

    6. Localize e selecione o ficheiro de modelo de aplicação que carregou anteriormente.
    7. Clique em Aplicar.
    8. No campo Contentor, introduza/usr/share/nginx/html/TEMPLATE_FILENAME.
      Nota:

      SubstituaTEMPLATE_FILENAME pelo nome do seu ficheiro de modelo. Por exemplo: /usr/share/nginx/html/my-templates.json

    9. Selecione RO.
    10. Clique em Aplicar.

      A Container Station guarda as definições de armazenamento.

  9. Clique em Seguinte.
  10. Reveja as definições do contentor e depois clique em Terminar.

O ficheiro de modelo de aplicação torna-se disponível para utilização.

Nota:

Pode verificar se o ficheiro modelo de aplicação está acessível, introduzindo http://HOST_IP_ADDRESS:PUBLISHED_HOST_PORT/TEMPLATE_FILENAME no navegador de internet. Por exemplo: http://192.168.1.1:30080/my-templates.json.

Alojamento de um modelo de Aplicação personalizado com o Servidor de Internet QNAP

De seguida, deve disponibilizar o modelo de aplicação personalizado para a Container Station. Este tópico explica o processo de alojamento do ficheiro de modelo com o Servidor de Internet QNAP.

Em alternativa, também pode alojar o ficheiro de modelo de aplicação com um contentor NGINX diretamente na Container Station. Consulte Alojamento de um modelo de Aplicação personalizado num Contentor NGINX.

  1. Ativar o Servidor de Internet QTS.
    1. Inicie a sessão no sistema como administrador.
    2. Aceda a Painel de Controlo > Aplicações > Servidor Web > Servidor Web.
    3. Selecione Ativar Servidor Web.
    4. Opcional: Configurar as definições do Servidor de Internet.
    5. Clique em Aplicar.

      O sistema ativa o servidor de internet.

  2. Carregar o ficheiro de modelo de Aplicação personalizado.
    1. Abra a File Station.
    2. Navegue para a pasta Internet criada para o servidor de internet.
    3. Carregue o ficheiro de modelo de Aplicação.

O ficheiro de modelo de aplicação torna-se disponível para utilização.

Nota:

Pode verificar se o ficheiro modelo de aplicação está acessível, introduzindo http://HOST_IP_ADDRESS:WEB_SERVER_PORT/TEMPLATE_FILENAME no navegador de internet. Por exemplo: http://192.168.1.1:80/my-templates.json.

Adicionar um modelo de Aplicação personalizado na Container Station

O passo seguinte é adicionar o ficheiro de modelo de aplicação personalizado para a Container Station. Isto torna a lista de aplicações disponíveis na Container Station.

  1. Inicie a Container Station.
  2. No menu, clique em Preferências.
  3. Aceda a Modelos de Aplicação.
  4. Selecione Ativar modelo personalizado.
  5. Especifique o URL para um modelo de aplicação personalizado.
    Nota:

    Dependendo da sua configuração, o URL pode exigir que inclua o endereço IP e o número da porta do servidor de internet configurado. Por exemplo: http://192.168.1.1:30080/my-template-file.json.

  6. Clique em Aplicar.

A Container Station guarda o modelo de aplicação personalizado.

Implementação de um modelo de Aplicação personalizado

O passo final é a implementação de um contentor a partir do ficheiro de modelo de aplicação personalizado que adicionou na etapa anterior.

  1. No menu, aceda a Modelos de Aplicações.
  2. Aceda ao separador Modelos Personalizados.
  3. Identifique um modelo.
  4. Clique em Implementar.

Abre-se o assistente de Implementar Contentor. Consulte Criação de um Contentor Docker.

Este artigo foi útil?

60% das pessoas acham que foi útil.
Obrigado por seu retorno.

Conte-nos como podemos melhorar este artigo:

Se quiser enviar outros comentários, escreva-os abaixo.

Escolher especificação

      Mostrar mais Menos

      Este site noutros países/regiões:

      open menu
      back to top