Aangepaste app-sjablonen configureren en implementeren in Container Station 3


Laatst gewijzigd op: 2023-03-27

U kunt met app-sjablonen in Container Station kant-en-klare containers implementeren in uw QNAP-omgeving. Container Station biedt standaard een reeks door QNAP geverifieerde sjablonen, maar u kunt extra aangepaste app-sjablonen toevoegen voor uw specifieke behoeften. U kunt deze aangepaste app-sjablonen rechtstreeks hosten op uw QNAP-apparaat of op een externe webserver.

In deze zelfstudie worden twee methoden voor het hosten van aangepaste app-sjablonen op uw QNAP-apparaat uitgelegd. Ook leest u hoe u Container Station kunt configureren om toegang te krijgen tot deze aangepaste app-sjablonen.

Een aangepast app-sjabloonbestand maken

U moet om te beginnen een aangepast app-sjabloonbestand maken. Container Station biedt standaard een lijst met containers waarvan is vastgesteld dat ze goed werken met uw QNAP-apparaat. U kunt hier door QNAP geverifieerde sjablonen downloaden en wijzigen of zelf een nieuw bestand maken.

NB:

U kunt het sjabloonbestand in elke tekstverwerker wijzigen.

Indeling van app-sjabloon

Definities voor app-sjablonen worden in JSON geschreven. Geldige sjablonen bestaan uit een reeks en minimaal één containersjabloonelement. Elk containersjabloonelement is een JSON-object dat verplichte of optionele gegevensvelden bevat. De indeling moet vergelijkbaar zijn met die van het volgende voorbeeld:

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

Indeling van JSON-element

type

Kenmerk

Beschrijving

Beschrijving

Het type container (Docker of LXD) voor dze sjabloon.

Belang

Vereist

Indeling

Geheel getal

Geaccepteerde waarden

  • 1: Gebruikt voor Docker-containers.

  • 10: Gebruikt voor LXD-containers.

titel

Kenmerk

Beschrijving

Beschrijving

De titel van de sjabloon.

Belang

Vereist

Indeling

Tekenreeks

Geaccepteerde waarden

Elke tekenreekswaarde

sub_title

Kenmerk

Beschrijving

Beschrijving

Informatie over de versie van de sjabloon.

Belang

Vereist

Indeling

Tekenreeks

Geaccepteerde waarden

Elke tekenreekswaarde

beschrijving

Kenmerk

Beschrijving

Beschrijving

Een beschrijving die wordt gebruikt om informatie over de sjabloon te verstrekken.

Belang

Vereist

Indeling

Tekenreeks

Geaccepteerde waarden

Elke tekenreekswaarde

logo

Kenmerk

Beschrijving

Beschrijving

De locatie van een logo voor de sjabloon.

Belang

Optioneel

Indeling

Tekenreeks

Geaccepteerde waarden

Elke geldige URL of elk pad ten opzichte van het netwerkdomein waar de aangepaste app-sjabloon wordt gehost.

locatie

Kenmerk

Beschrijving

Beschrijving

De URL van de sjabloon. Dit kan een introductiepagina zijn voor de sjabloon.

Belang

Optioneel

Indeling

Tekenreeks

Geaccepteerde waarden

Elke geldige URL

platform

Kenmerk

Beschrijving

Beschrijving

Het ondersteunde platform. Moet een geldige waarde bevatten.

Belang

Vereist

Indeling

Tekenreeks

Geaccepteerde waarden

  • linux: Elk platform

  • linux/amd64: 64-bits x86

  • linux/arm64: 64-bits ARM

  • linux/arm: 32-bits ARM

Voorbeeld

{
  "platform": "linux/amd64"
}

installatiekopie

Kenmerk

Beschrijving

Beschrijving

De installatiekopie die aan een sjabloon wordt gekoppeld.

Belang

Vereist

Indeling

Tekenreeks

Geaccepteerde waarden

Elke geldige installatiekopie

Voorbeeld

{
  "image": "nginx:latest"
}

opdracht

Kenmerk

Beschrijving

Beschrijving

De opdracht die in de Docker-container moet worden uitgevoerd. Als deze niet wordt opgegeven, gebruikt de container de standaardopdracht die in het Docker-bestand is opgegeven.

Belang

Optioneel

Indeling

Tekenreeks

Geaccepteerde waarden

Elke tekenreekswaarde

Voorbeeld

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

instappunt

Kenmerk

Beschrijving

Beschrijving

Het instappunt om de Docker-container te starten. Als deze niet wordt opgegeven, gebruikt de container het standaard instappunt dat in het Docker-bestand is opgegeven.

Belang

Optioneel

Indeling

Tekenreeks

Geaccepteerde waarden

Elke tekenreekswaarde

Voorbeeld

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

env

Kenmerk

Beschrijving

Beschrijving

Een JSON-matrix die de omgevingsvariabelen beschrijft die de sjabloon nodig heeft. Elk element in de matrix moet een geldig JSON-object zijn.

Belang

Optioneel

Indeling

Matrix

Geaccepteerde waarden

Een geldige JSON-matrix

Matrixindeling

  • naam: (Vereist) De naam van de omgevingsvariabele die in de installatiekopie van de container wordt ondersteund.

  • waarde: (Vereist) De waarde die aan de variabele is gekoppeld.

Voorbeeld

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

labels

Kenmerk

Beschrijving

Beschrijving

Een JSON-matrix die de labels beschrijft die aan een sjabloon zijn gekoppeld. Elk element in de matrix moet een geldig JSON-object zijn.

Belang

Optioneel

Indeling

Matrix

Geaccepteerde waarden

Een geldige JSON-matrix

Matrixindeling

  • naam: (Vereist) De naam van de labelcode.

  • waarde: (Vereist) De waarde die aan de code is gekoppeld.

Voorbeeld

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

volumes

Kenmerk

Beschrijving

Beschrijving

Een JSON-matrix die de volumes beschrijft die aan een sjabloon zijn gekoppeld. Elk element in de matrix moet een geldig JSON-object zijn met een vereiste containereigenschap.

Belang

Optioneel

Indeling

Matrix

Geaccepteerde waarden

Een geldige JSON-matrix

Matrixindeling

  • container: (Vereist) Het pad naar de container.

  • volume: (Optioneel) De naam van het Docker-volume.

  • binden: (Optioneel voor Docker-containers, vereist voor LXD-container) Het pad naar de host dat wordt gebruikt als bron voor een actieve koppeling.

  • readonly: (Optioneel) Indien deze is ingesteld optruewordt het volume gekoppeld in de alleen-lezenmodus.

Voorbeeld

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

poorten

Kenmerk

Beschrijving

Beschrijving

Een JSON-matrix die de poorten beschrijft die door een sjabloon openbaar worden gemaakt. Elk element in de reeks moet een geldige JSON-tekenreeks zijn die haven in de container en het protocol opgeeft. Hier kunnen optioneel een poortnummer en dubbele punt (bijv. 8080:) aan voorafgaan om de poort te definiëren die aan de host is toegewezen. Als de hostpoort niet is opgegeven, wijst de Docker-host automatisch een poort toe wanneer de container start.

Belang

Optioneel

Indeling

Matrix

Geaccepteerde waarden

Een geldige JSON-matrix

Voorbeeld

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

hostnaam

Kenmerk

Beschrijving

Beschrijving

De hostnaam van de container. Deze kan helpen om de container gemakkelijk te herkennen.

Belang

Optioneel

Indeling

Tekenreeks

Geaccepteerde waarden

Elke tekenreekswaarde

Voorbeeld

{
  "hostname": "myContainerHostName"
}

restart_policy

Kenmerk

Beschrijving

Beschrijving

Het beleid voor opnieuw starten dat aan de Docker-container is gekoppeld. Als deze niet is opgegeven, heeft deze waarde de standaardinstellingunless-stopped.

Belang

Optioneel

Indeling

Tekenreeks

Geaccepteerde waarden

  • no: start de container niet automatisch opnieuw;

  • on-failure: Start de container opnieuw wanneer deze wordt afgesloten vanwege fouten, zoals een afsluitcode die anders is dan nul.

  • always: start de container altijd opnieuw wanneer deze stopt. Als de container handmatig wordt gestopt, start deze alleen opnieuw wanneer Container Station opnieuw start of wanneer u de container handmatig opnieuw start;

  • unless-stopped: Vergelijkbaar met Altijd, behalve dat de container niet opnieuw start wanneer deze handmatig wordt gestopt –óók niet nadat Container Station opnieuw wordt gestart.

Voorbeeld

{
  "restart_policy": "unless-stopped"
}

auto_start_policy

Kenmerk

Beschrijving

Beschrijving

Het beleid voor automatisch starten dat aan de LXD-container is gekoppeld. Als deze niet is opgegeven, heeft deze waarde de standaardinstellingretain.

Belang

Optioneel

Indeling

Tekenreeks

Geaccepteerde waarden

  • no: start de container niet automatisch opnieuw;

  • always: start de container altijd opnieuw wanneer deze stopt. Als de container handmatig wordt gestopt, start deze alleen opnieuw wanneer Container Station opnieuw start of wanneer u de container handmatig opnieuw start;

  • retain: Vergelijkbaar met Altijd, behalve dat de container niet opnieuw start wanneer deze handmatig wordt gestopt –óók niet nadat Container Station opnieuw wordt gestart.

Voorbeeld

{
  "auto_start_policy": "retain"
}

interactive

Kenmerk

Beschrijving

Beschrijving

Bepaalt of de Docker-container op de voorgrond moet worden gestart. Als deze niet is opgegeven, heeft deze waarde de standaardinstellingtrue.

Belang

Optioneel

Indeling

Booleaans

Geaccepteerde waarden

  • true: Schakelen de Docker-container op de voorgrond.

  • false: Start de container in de ontkoppelde modus.

Voorbeeld

{
  "interactive": false
}

tty

Kenmerk

Beschrijving

Beschrijving

Bepaalt of er een pseudo-TTY aan de Docker-container moet worden toegewezen. Als deze waarde niet wordt opgegeven, is de standaardinstellingtrue.

Belang

Optioneel

Indeling

Booleaans

Geaccepteerde waarden

  • true: Wijst een pseudo-TTY toe aan de Docker-container

  • false: Wijst geen pseudo-TTY toe aan de Docker-container.

Voorbeeld

{
  "tty": false
}

privileged

Kenmerk

Beschrijving

Beschrijving

Bepaalt of de container in de modus met machtigingen moet worden gestart. Als deze waarde niet wordt opgegeven, is de standaardinstellingfalse.

Belang

Optioneel

Indeling

Booleaans

Geaccepteerde waarden

  • true: Start de container in de modus met machtigingen.

  • false: Start de container niet in de modus met machtigingen.

Voorbeeld

{
  "privileged": true
}

Een aangepaste app-sjabloon hosten in een NGINX-container

Vervolgens moet u de aangepaste app-sjabloon beschikbaar maken voor Container Station. In dit onderwerp wordt uitgelegd hoe het sjabloonbestand wordt gehost met een NGINX-container die ook in Container Station wordt uitgevoerd.

U kunt het app-sjabloonbestand eventueel ook hosten op de QNAP-webserver. Raadpleeg Een aangepaste app-sjabloon hosten met de QNAP-webserver.

Belangrijk:

Nadat u het JSON-bestand voor de aangepaste app-sjablonen hebt bijgewerkt, moet u de NGINX-container opnieuw opstarten om de wijzigingen toe te passen in de container.

  1. Upload het aangepaste app-sjabloonbestand;
    1. Open File Station;
    2. Navigeer naar een map op het apparaat;
    3. Upload het app-sjabloonbestand.
    4. Noteer de locatie van het sjabloonbestand. U moet deze later weer gebruiken;
  2. Open Container Station.
  3. Klik in het bovenste deelvenster op de pijl naast Verkennen;
  4. Selecteer Maak container;

    Het venster Maak container wordt geopend;

  5. Selecteer een installatiekopie.

    Instelling

    Actie

    Modus

    Selecteer Eenvoudige modus.

    Register

    Selecteer Docker Hub.

    Installatiekopie

    Voernginx.

  6. Klik op Volgende.
  7. Optioneel: Configureer de containerinstellingen.

    Instelling

    Actie

    Naam

    Voer een naam in voor de container. Bijvoorbeeld: nginx-mijn-sjabloon.

    Beleid voor automatisch starten

    Selecteer Tenzij gestopt.

    Door deze optie zal de container altijd opnieuw starten, tenzij hij door een gebruiker handmatig wordt gestopt.

    Netwerkconfiguratie

    Configureer de instellingen zo dat ze overeenkomen met uw netwerkomgeving.

    In deze zelfstudie gebruiken we de standaard netwerkmodus en verzenden we verkeer naar de container via poort30080 op de host.

    NB:

    Als in het veld Host niets is opgegeven, kan de gepubliceerde poort wijzigen nadat de container opnieuw wordt gestart. Hierdoor is de app-sjabloon mogelijk niet toegankelijk voor Container Station.

  8. Optioneel: Wijzig de uitgebreide instellingen;
    1. Klik op Uitgebreide instellingen;

      Het venster Uitgebreide instellingen wordt weergegeven;

    2. Ga naar het tabblad Opslag;
    3. Klik op de pijl naast Volume toevoegen;
    4. Selecteer Locatie van koppelingshost binden;

      Er wordt een nieuwe opslagrij toegevoegd;

    5. Klik op .

      Het venster Hostlocatie selecteren wordt geopend;

    6. Zoek het app-sjabloonbestand dat u eerder hebt geüpload en selecteer het bestand;
    7. Klik op Toepassen.
    8. Voer in het veld Container de volgende waarde in:/usr/share/nginx/html/TEMPLATE_FILENAME.
      NB:

      VervangTEMPLATE_FILENAME door de naam van uw sjabloonbestand. Bijvoorbeeld: /usr/share/nginx/html/my-templates.json

    9. Selecteer RO;
    10. Klik op Toepassen.

      Container Station slaat de opslaginstellingen op;

  9. Klik op Volgende.
  10. Controleer de containerinstellingen en klik daarna op Voltooien.

Het app-sjabloonbestand kan nu worden gebruikt.

NB:

U kunt controleren of het app-sjabloonbestand beschikbaar is door in de webbrowser naar http://HOST_IP_ADDRESS:PUBLISHED_HOST_PORT/TEMPLATE_FILENAME te gaan. Bijvoorbeeld: http://192.168.1.1:30080/my-templates.json.

Een aangepaste app-sjabloon hosten met de QNAP-webserver

Vervolgens moet u de aangepaste app-sjabloon beschikbaar maken voor Container Station. In dit onderwerp wordt uitgelegd hoe het sjabloonbestand wordt gehost met een QNAP-webserver.

Eventueel kunt u de app-sjabloonbestand ook rechtstreeks hosten in een NGINX-container in Container Station. Raadpleeg Een aangepaste app-sjabloon hosten in een NGINX-container.

  1. Schakel de QTS-webserver in;
    1. Meld u bij het systeem aan als beheerder;
    2. Ga naar Configuratiescherm > Toepassingen > Webserver > Webserver;
    3. Selecteer Web Server inschakelen.
    4. Optioneel: Configureer de instellingen van de webserver;
    5. Klik op Toepassen.

      Het systeem schakelt de webserver in;

  2. Upload het aangepaste app-sjabloonbestand;
    1. Open File Station;
    2. Navigeer naar de map Web die voor de webserver is gemaakt;
    3. Upload het app-sjabloonbestand.

Het app-sjabloonbestand kan nu worden gebruikt.

NB:

U kunt controleren of het app-sjabloonbestand beschikbaar is door in de webbrowser naar http://HOST_IP_ADDRESS:WEB_SERVER_PORT/TEMPLATE_FILENAME te gaan. Bijvoorbeeld: http://192.168.1.1:80/my-templates.json.

Een aangepaste app-sjabloon toevoegen aan Container Station

Vervolgens moet u de aangepaste app-sjabloonbestand toevoegen Container Station. Hierdoor wordt de lijst met toepassings-apps beschikbaar in Container Station.

  1. Start Container Station.
  2. Klik in het menu op Voorkeuren.
  3. Ga naar App-sjablonen;
  4. Selecteer Aangepaste sjabloon inschakelen;
  5. Geef de URL naar een aangepaste app-sjabloon op;
    NB:

    Afhankelijk van uw configuratie moet u voor de URL mogelijk het IP-adres en poortnummer van de geconfigureerde webserver invoeren. Bijvoorbeeld: http://192.168.1.1:30080/my-template-file.json.

  6. Klik op Toepassen.

Container Station slaat de aangepaste app-sjabloon op.

Een aangepaste app-sjabloon implementeren

Als laatste moet u een container implementeren op basis van het aangepaste app-sjabloonbestand dat u in de vorige stap hebt toegevoegd.

  1. Ga in het menu naar App-sjablonen;
  2. Ga naar het tabblad Aangepaste sjablonen.
  3. Zoek een sjabloon.
  4. Klik op Implementeren.

De wizard Container implementeren wordt geopend. Raadpleeg Een Docker-container maken.

Was dit artikel nuttig?

60% van de mensen vond dit nuttig
Bedankt voor uw feedback.

Vertel ons a.u.b. hoe we dit artikel kunnen verbeteren.

Hieronder kunt u eventuele aanvullende feedback toevoegen.

Kies specificatie

      Toon meer Minder

      Deze website in andere landen/regio's:

      open menu
      back to top