Come si configurano e costruiscono modelli di app personalizzati in Container Station 3?


Ultima data di modifica 2023-03-27

I modelli di app Container Station consentono di distribuire container preconfigurati nell’ambiente QNAP. Per impostazione predefinita, Container Station fornisce una raccolta di modelli verificati da QNAP, ma è possibile aggiungere altri modelli di app personalizzati più vicini alle proprie esigenze. È possibile inserire questi modelli di app personalizzati direttamente nel dispositivo QNAP oppure in un server Web esterno.

In questo tutorial sono descritti due metodi di hosting di modelli di app personalizzati sul dispositivo QNAP e come configurare Container Station per accedere a questi modelli di app configurati.

Creazione di un file modello di app personalizzato

Il primo passo è creare un file modello di app personalizzato. Per impostazione predefinita, Container Station fornisce un elenco di container per i quali è stato verificato il corretto funzionamento con il dispositivo QNAP in uso. È possibile scaricare e modificare i modelli verificati da QNAP qui oppure è possibile creare autonomamente un nuovo file.

Nota:

è possibile modificare il file modello all’interno di qualsiasi editor di testo.

Formato modello di app

Le definizioni di modello di app sono scritte in JSON. I modelli validi sono composti da un array e da uno o più elementi del modello di container. Ogni elemento di modello di container è un oggetto JSON che include qualsiasi campo dati obbligatorio o opzionale. Il formato deve essere simile al seguente esempio:

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

Formato Elemento UI

tipo

Attributo

Descrizione

Descrizione

Il tipo di container (Docker o LXD) per questo modello.

Importanza

Obbligatorio

Formato

Numero intero

Valori accettati

  • 1: usato per container Docker.

  • 10: usato per container LXD.

titolo

Attributo

Descrizione

Descrizione

Il titolo del modello.

Importanza

Obbligatorio

Formato

Stringa

Valori accettati

Qualsiasi valore di stringa

sub_title

Attributo

Descrizione

Descrizione

Informazioni sulla versione di modello.

Importanza

Obbligatorio

Formato

Stringa

Valori accettati

Qualsiasi valore di stringa

descrizione

Attributo

Descrizione

Descrizione

Una descrizione usata per fornire informazioni sul modello.

Importanza

Obbligatorio

Formato

Stringa

Valori accettati

Qualsiasi valore di stringa

Logo

Attributo

Descrizione

Descrizione

La posizione di un logo per il modello.

Importanza

Opzionale

Formato

Stringa

Valori accettati

Qualsiasi URL o percorso valido relativo al dominio di rete in cui si trova il modello di app personalizzato.

QGenie

Attributo

Descrizione

Descrizione

L’URL del modello può essere una pagina Web introduttiva per il modello.

Importanza

Opzionale

Formato

Stringa

Valori accettati

Qualsiasi URL valido

piattaforma

Attributo

Descrizione

Descrizione

La piattaforma supportata deve contenere un valore valido.

Importanza

Obbligatorio

Formato

Stringa

Valori accettati

  • linux: tutte le piattaforme

  • linux/amd64: 64-bit x86

  • linux/arm64: 64-bit ARM

  • linux/arm: 32-bit ARM

Esempio

{
  "platform": "linux/amd64"
}

immagine

Attributo

Descrizione

Descrizione

L’immagine associata a un modello.

Importanza

Obbligatorio

Formato

Stringa

Valori accettati

Qualsiasi immagine valida

Esempio

{
  "image": "nginx:latest"
}

comando

Attributo

Descrizione

Descrizione

Il comando da eseguire nel container Docker. Se non specificato, il container utilizza il comando predefinito specificato nel file Docker.

Importanza

Opzionale

Formato

Stringa

Valori accettati

Qualsiasi valore di stringa

Esempio

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

punto di ingresso

Attributo

Descrizione

Descrizione

Il punto di ingresso per avviare il container Docker. Se non specificato, il container utilizza il punto di ingresso predefinito specificato nel file Docker.

Importanza

Opzionale

Formato

Stringa

Valori accettati

Qualsiasi valore di stringa

Esempio

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

env

Attributo

Descrizione

Descrizione

Array JSON che descrive le variabili di ambiente richieste da un modello. Ogni elemento dell’array deve essere un oggetto JSON valido.

Importanza

Opzionale

Formato

Array

Valori accettati

Un’array JSON valida

Formato array

  • nome: (obbligatorio) il nome della variabile di ambiente come supportata nell'immagine container.

  • valore: (obbligatorio) il valore associato alla variabile.

Esempio

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

etichette

Attributo

Descrizione

Descrizione

Array JSON che descrive le etichette associate a un modello. Ogni elemento dell’array deve essere un oggetto JSON valido.

Importanza

Opzionale

Formato

Array

Valori accettati

Un’array JSON valida

Formato array

  • nome: (obbligatorio) il nome della chiave etichetta.

  • valore: (obbligatorio) il valore associato alla chiave.

Esempio

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

volumes

Attributo

Descrizione

Descrizione

Array JSON che descrive i volumi associati a un modello. Ogni elemento dell’array deve essere un oggetto JSON valido con una proprietà container obbligatoria.

Importanza

Opzionale

Formato

Array

Valori accettati

Un’array JSON valida

Formato array

  • container: (obbligatorio) il percorso del container.

  • volume: (Facoltativo) Il nome del volume Docker.

  • associa: (facoltativo per container Docker, obbligatorio per container LXD) il percorso host utilizzato come origine di un montaggio BIND.

  • sola lettura: (facoltativo) se impostato sutrue, il volume è montato in modalità di sola lettura.

Esempio

{
  "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
    }
  ]
}

porte

Attributo

Descrizione

Descrizione

Array JSON che descrive le porte esposte da un modello. Ogni elemento dell’array deve essere una stringa JSON valida che specifica il numero di porta nel container e il protocollo. È possibile aggiungere un numero di porta e due punti (ad esempio 8080:) per definire la porta mappata sull'host. Se la porta host non è specificata, l'host Docker assegna automaticamente una porta all'avvio del container.

Importanza

Opzionale

Formato

Array

Valori accettati

Un’array JSON valida

Esempio

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

nome host

Attributo

Descrizione

Descrizione

Nome host del container. Consente di identificare facilmente il container.

Importanza

Opzionale

Formato

Stringa

Valori accettati

Qualsiasi valore di stringa

Esempio

{
  "hostname": "myContainerHostName"
}

restart_policy

Attributo

Descrizione

Descrizione

Il criterio di riavvio associato al container Docker. Se non specificato, il valore predefinito è unless-stopped.

Importanza

Opzionale

Formato

Stringa

Valori accettati

  • no: non riavviare automaticamente il container.

  • on-failure: riavviare il container in caso di uscita a causa di errori, come un codice di uscita nonzero.

  • sempre: riavviare sempre il container in caso di interruzione. In caso di interruzione manuale, viene riavviato solo quando Container Station si riavvia oppure quando viene eseguito il riavvio manuale del container.

  • unless-stopped: come per l’opzione Sempre, tranne quando il container viene arrestato manualmente e quindi non viene riavviato neanche dopo il riavvio di Container Station.

Esempio

{
  "restart_policy": "unless-stopped"
}

auto_start_policy

Attributo

Descrizione

Descrizione

Il criterio di riavvio automatico associato al container LXD. Se non specificato, il valore predefinito èconserva.

Importanza

Opzionale

Formato

Stringa

Valori accettati

  • no: non riavviare automaticamente il container.

  • sempre: riavviare sempre il container in caso di interruzione. In caso di interruzione manuale, viene riavviato solo quando Container Station si riavvia oppure quando viene eseguito il riavvio manuale del container.

  • conserva: come per l’opzione Sempre, tranne quando il container viene arrestato manualmente e quindi non viene riavviato neanche dopo il riavvio di Container Station.

Esempio

{
  "auto_start_policy": "retain"
}

interattivo

Attributo

Descrizione

Descrizione

Controlla se il container Docker deve essere avviato in modalità primo piano. Se non specificato, il valore predefinito è true.

Importanza

Opzionale

Formato

Boolean

Valori accettati

  • true: avviare il container Docker in modalità primo piano.

  • false: avvia il container in modalità scollegata.

Esempio

{
  "interactive": false
}

tty

Attributo

Descrizione

Descrizione

Controlla se al container Docker deve essere assegnato uno pseudo-TTY. Se non specificato, il valore predefinito ètrue.

Importanza

Opzionale

Formato

Boolean

Valori accettati

  • true: alloca uno pseudo-TTY al container Docker

  • false: non assegna uno pseudo-TTY al container Docker.

Esempio

{
  "tty": false
}

privileged

Attributo

Descrizione

Descrizione

Controlla se il container deve essere avviato in modalità privilegiata. Se non specificato, il valore predefinito èfalse.

Importanza

Opzionale

Formato

Boolean

Valori accettati

  • true: avvia il container in modalità Privilegiata.

  • false: non avvia il container in modalità Privilegiata.

Esempio

{
  "privileged": true
}

Hosting di un modello di app personalizzato in un NGINX Container

Successivamente, sarà necessario rendere il modello di app personalizzato disponibile in Container Station. Questo argomento descrive il processo di hosting del file di modello con un container NGINX in esecuzione in Container Station.

In alternativa, è possibile anche inserire il file di modello app in QNAP Web Server. Vedere Hosting di un modello di app personalizzato con QNAP Web Server.

Importante:

dopo avere aggiornato il file JSON di modelli di app personalizzati, occorre riavviare il container NGINX per rendere effettive le modifiche nel container.

  1. Caricare il file modello di app personalizzato.
    1. Aprire File Station.
    2. Passare a una cartella nel dispositivo.
    3. Caricare il file modello di app personalizzato.
    4. Annotare la posizione del file modello per utilizzarlo successivamente.
  2. Aprire Container Station.
  3. Nel pannello superiore, fare clic sulla freccia accanto a Explore
  4. Selezionare Crea container.

    Viene aperta la finestra Crea container.

  5. Selezionare un’immagine.

    Impostazione

    Azione

    Modalità

    Selezionare la Modalità di base.

    Registro

    Selezionare Docker Hub.

    Immagine

    Immettterenginx.

  6. Fare clic su Avanti.
  7. Opzionale: Configurare le impostazioni container.

    Impostazione

    Azione

    Nome

    Inserire un nome per il container. Ad esempio: nginx-my-template.

    Criterio di avvio automatico

    Selezionare Salvo interruzione.

    Questa opzione compderterà il riavvio del container sempre, tranne in caso di interruzione manuale da parte di un utente.

    Configurazione rete

    Configurare le impostazioni adattate all’ambiente di rete.

    In questo tutorial, viene utilizzata la modalità di rete predefinita e il traffico viene inviato al container attraverso la porta30080 nell’host.

    Nota:

    se il campo Host non è specificato, la porta pubblicata potrebbe cambiare dopo il riavvio del container. Questa condizione potrebbe rendere il modello di app inaccessibile a Container Station.

  8. Opzionale: modificare le impostazioni avanzate.
    1. Fare clic su Impostazioni avanzate.

      Viene visualizzata la finestra Impostazioni avanzate.

    2. Passare alla scheda Archiviazione.
    3. Fare clic sulla freccia accanto a Aggiungi volume.
    4. Selezionare Percorso host di montaggio vincolato.

      Viene aggiunta una nuova riga di archiviazione.

    5. Fare clic su .

      Viene aperta la finestra Seleziona percorso host.

    6. Individuare e selezionare il modello di app caricato in precedenza.
    7. Fare clic su Applica.
    8. Nel campo Container, immettere/usr/share/nginx/html/TEMPLATE_FILENAME.
      Nota:

      sostituireTEMPLATE_FILENAME con il nome del file modello. Ad esempio: /usr/share/nginx/html/my-templates.json

    9. Selezionare RO.
    10. Fare clic su Applica.

      Container Station salva le impostazioni di archiviazione.

  9. Fare clic su Avanti.
  10. Rivedere il impostazioni del container e fare clic su Fine.

Il file modello di app diventa disponibile per l’uso.

Nota:

è possibile verificare che il file modello di app sia accessibile inserendo http://HOST_IP_ADDRESS:PUBLISHED_HOST_PORT/TEMPLATE_FILENAME nel browser web. Ad esempio: http://192.168.1.1:30080/my-templates.json.

Hosting di un modello di app personalizzato con QNAP Web Server

Successivamente, sarà necessario rendere il modello di app personalizzato disponibile in Container Station. Questo argomento descrive il processo di hosting del file di modello con QNAP Web Server.

In alternativa, è possibile anche inserire il file modello di app con un container NGINX direttamente in Container Station. Vedere Hosting di un modello di app personalizzato in un NGINX Container.

  1. Abilitare QTS Web Server.
    1. Accedere al sistema come amministratore.
    2. Andare su Pannello di controllo Applicazioni Server Web Server Web.
    3. Selezionare Abilita server Web.
    4. Opzionale: configurare le impostazioni Server Web.
    5. Fare clic su Applica.

      Il sistema abilita il server web.

  2. Caricare il file modello di app personalizzato.
    1. Aprire File Station.
    2. Passare alla cartella Web creata per il server web.
    3. Caricare il file modello di app personalizzato.

Il file modello di app diventa disponibile per l’uso.

Nota:

è possibile verificare che il file modello di app sia accessibile inserendo http://HOST_IP_ADDRESS:WEB_SERVER_PORT/TEMPLATE_FILENAME nel browser web. Ad esempio: http://192.168.1.1:80/my-templates.json.

Aggiunta di un modello di app personalizzato a Container Station

Il prossimo passaggio è aggiungere il file modello di app personalizzato a Container Station. In questo modo, l’elenco di app delle applicazioni diventa disponibile in Container Station.

  1. Avviare Container Station.
  2. Nel menu, fare clic su Preferenze.
  3. Andare su Modelli app.
  4. Selezionare Abilita modello personalizzato.
  5. Specificare l’URL su un modello di app personalizzato.
    Nota:

    a seconda della configurazione, l’URL può richiedere di includere l’indirizzo IP e il numero di porta del server web configurato. Ad esempio: http://192.168.1.1:30080/my-template-file.json.

  6. Fare clic su Applica.

Container Station salva il modello di app personalizzato.

Distribuzione di un modello di app personalizzato

Il passaggio finale è distribuire un container dal file modello di app personalizzato aggiunto nel passaggio precedente.

  1. Nel menu, passare a Modelli app.
  2. Accedere alla scheda Modelli.
  3. Identificare un modello.
  4. Fare clic su Implementa.

Viene aperta la procedura guidata Distribuisci container. Vedere Creazione di un container Docker.

Questo articolo è stato utile?

60% delle persone lo ritengono utile.
Grazie per il feedback.

Informarci su come può essere migliorato l'articolo:

Per offrire un’ulteriore feedback, includerlo di seguito.

Scegliere le caratteristiche

      Mostra di più Meno

      Questo sito in altre nazioni/regioni

      open menu
      back to top