[Important Sécurité Avis] Faux sites web Qfinder Pro détectés. En savoir plus >

Comment configurer et déployer des modèles d'applications personnalisés dans Container Station 3 ?


Date de la dernière modification : 2023-03-27

Les modèles d'application Container Station vous permettent de déployer des conteneurs préconfigurés dans votre environnement QNAP. Par défaut, Container Station fournit une collection de modèles vérifiés par QNAP, mais vous pouvez ajouter des modèles d'application personnalisés supplémentaires pour répondre à vos besoins spécifiques. Vous pouvez héberger ces modèles d'applications personnalisées directement sur votre appareil QNAP ou sur un serveur Web externe.

Ce didacticiel explique deux méthodes d'hébergement de modèles d'application personnalisés sur votre appareil QNAP et comment configurer Container Station pour accéder à ces modèles d'application personnalisés.

Création d'un fichier de modèle d'application personnalisé

La première étape consiste à créer un fichier de modèle d'application personnalisé. Par défaut, Container Station fournit une liste de conteneurs vérifiés pour fonctionner correctement avec votre appareil QNAP. Vous pouvez télécharger et modifier les modèles vérifiés par QNAP ici, ou créer vous-même un nouveau fichier.

Remarque:

Vous pouvez modifier le fichier modèle dans n'importe quel éditeur de texte.

Format du modèle d'application

Les définitions de modèle d'application sont écrites en JSON. Les modèles valides consistent en un tableau et un ou plusieurs éléments de modèle de conteneur. Chaque élément de modèle de conteneur est un objet JSON qui inclut tous les champs de données obligatoires ou facultatifs. Le format doit ressembler à l'exemple suivant :

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

Format d'élément JSON

type

Attribut

Description

Description

Le type de conteneur (Docker ou LXD) pour ce modèle.

Importance

Champs obligatoires

Format

Entier

Valeurs acceptées

  • 1: Utilisé pour les conteneurs Docker.

  • 10: Utilisé pour les conteneurs LXD.

titre

Attribut

Description

Description

Le titre du modèle.

Importance

Champs obligatoires

Format

Chaîne

Valeurs acceptées

Toute valeur de chaîne

sub_title

Attribut

Description

Description

Informations sur la version du modèle.

Importance

Champs obligatoires

Format

Chaîne

Valeurs acceptées

Toute valeur de chaîne

description

Attribut

Description

Description

Une description utilisée pour fournir des informations sur le modèle.

Importance

Champs obligatoires

Format

Chaîne

Valeurs acceptées

Toute valeur de chaîne

logo

Attribut

Description

Description

L'emplacement d'un logo pour le modèle.

Importance

Facultatif

Format

Chaîne

Valeurs acceptées

Toute URL ou chemin valide relatif au domaine du réseau où le modèle d'application personnalisée est hébergé.

emplacement

Attribut

Description

Description

L'URL du modèle. Il peut s'agir d'une page Web d'introduction pour le modèle.

Importance

Facultatif

Format

Chaîne

Valeurs acceptées

Toute URL valide

plate-forme

Attribut

Description

Description

La plate-forme prise en charge. Doit contenir une valeur valide.

Importance

Champs obligatoires

Format

Chaîne

Valeurs acceptées

  • linux: Chaque plateforme

  • linux/amd64: 64 bits x86

  • linux/arm64: 64 bits ARM

  • linux/arm: 32 bits ARM

Exemple

{
  "platform": "linux/amd64"
}

image

Attribut

Description

Description

L'image associée à un modèle.

Importance

Champs obligatoires

Format

Chaîne

Valeurs acceptées

Toute image valide

Exemple

{
  "image": "nginx:latest"
}

commande

Attribut

Description

Description

La commande à exécuter dans le conteneur Docker. Si elle n'est pas définie, le conteneur utilise la commande par défaut spécifiée dans le Dockerfile.

Importance

Facultatif

Format

Chaîne

Valeurs acceptées

Toute valeur de chaîne

Exemple

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

point d'entrée

Attribut

Description

Description

Le point d'entrée pour démarrer le conteneur Docker. S'il n'est pas défini, le conteneur utilise le point d'entrée par défaut spécifié dans le Dockerfile.

Importance

Facultatif

Format

Chaîne

Valeurs acceptées

Toute valeur de chaîne

Exemple

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

env

Attribut

Description

Description

Un tableau JSON décrivant les variables d'environnement requises par un modèle. Chaque élément du tableau doit être un objet JSON valide.

Importance

Facultatif

Format

Tableau

Valeurs acceptées

Un tableau JSON valide

Format de tableau

  • nom: (Obligatoire) Nom de la variable d'environnement tel qu'il est pris en charge dans l'image du conteneur.

  • valeur: (Obligatoire) La valeur associée à la variable.

Exemple

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

étiquettes

Attribut

Description

Description

Un tableau JSON décrivant les étiquettes associées à un modèle. Chaque élément du tableau doit être un objet JSON valide.

Importance

Facultatif

Format

Tableau

Valeurs acceptées

Un tableau JSON valide

Format de tableau

  • nom: (Obligatoire) Le nom de la clé d'étiquette.

  • valeur: (Obligatoire) La valeur associée à la clé.

Exemple

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

volumes

Attribut

Description

Description

Un tableau JSON décrivant les volumes associés à un modèle. Chaque élément du tableau doit être un objet JSON valide avec une propriété de conteneur requise.

Importance

Facultatif

Format

Tableau

Valeurs acceptées

Un tableau JSON valide

Format de tableau

  • conteneur: (Obligatoire) Le chemin du conteneur.

  • volume: (Facultatif) Le nom du volume Docker.

  • associer: (Facultatif pour les conteneurs Docker, Obligatoire pour les conteneurs LXD) Le chemin de l'hôte utilisé comme source d'un montage d'association.

  • lecture seule: (Facultatif) Si défini survrai, le volume est monté en mode lecture seule.

Exemple

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

ports

Attribut

Description

Description

Un tableau JSON décrivant les ports exposés par un modèle. Chaque élément du tableau doit être une chaîne JSON valide spécifiant le numéro de port dans le conteneur, ainsi que le protocole. Il peut éventuellement être précédé d'un numéro de port et de deux-points (par exemple 8080 :) pour définir le port mappé sur l'hôte. Si le port hôte n'est pas spécifié, l'hôte Docker attribue automatiquement un port au démarrage du conteneur.

Importance

Facultatif

Format

Tableau

Valeurs acceptées

Un tableau JSON valide

Exemple

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

nom d’hôte

Attribut

Description

Description

Le nom d'hôte du conteneur. Peut aider à identifier facilement le conteneur.

Importance

Facultatif

Format

Chaîne

Valeurs acceptées

Toute valeur de chaîne

Exemple

{
  "hostname": "myContainerHostName"
}

restart_policy

Attribut

Description

Description

La stratégie de redémarrage associée au conteneur Docker. Si elle n'est pas spécifiée, cette valeur par défaut estsauf arrêt.

Importance

Facultatif

Format

Chaîne

Valeurs acceptées

  • no: Ne redémarre pas automatiquement le conteneur.

  • en cas de panne: Redémarrez le conteneur s'il se ferme en raison d'erreurs, comme un code de sortie différent de zéro.

  • toujours: Redémarrez toujours le conteneur s'il s'arrête. S'il est arrêté manuellement, il redémarre seulement si Container Station redémarre ou si vous redémarrez manuellement le conteneur.

  • sauf arrêt: Similaire à Toujours, sauf que lorsque le conteneur est arrêté manuellement, il ne redémarre pas même après le redémarrage de Container Station.

Exemple

{
  "restart_policy": "unless-stopped"
}

auto_start_policy

Attribut

Description

Description

La stratégie de démarrage automatique associée au conteneur LXD. Si elle n'est pas spécifiée, cette valeur par défaut estconserver.

Importance

Facultatif

Format

Chaîne

Valeurs acceptées

  • no: Ne redémarre pas automatiquement le conteneur.

  • toujours: Redémarrez toujours le conteneur s'il s'arrête. S'il est arrêté manuellement, il redémarre seulement si Container Station redémarre ou si vous redémarrez manuellement le conteneur.

  • conserver: Similaire à Toujours, sauf que lorsque le conteneur est arrêté manuellement, il ne redémarre pas même après le redémarrage de Container Station.

Exemple

{
  "auto_start_policy": "retain"
}

interactif

Attribut

Description

Description

Contrôle si le conteneur Docker doit démarrer en mode premier plan. Si elle n'est pas spécifiée, la valeur par défaut estvrai.

Importance

Facultatif

Format

Booléen

Valeurs acceptées

  • vrai: Démarrez le conteneur Docker en mode premier plan.

  • faux: Démarre le conteneur en mode détaché

Exemple

{
  "interactive": false
}

tty

Attribut

Description

Description

Contrôle si le conteneur Docker doit se voir attribuer un pseudo-TTY. Si non spécifiée, la valeur par défaut estvrai.

Importance

Facultatif

Format

Booléen

Valeurs acceptées

  • vrai: Attribue un pseudo-TTY au conteneur Docker

  • faux: N'attribue pas de pseudo-TTY au conteneur Docker

Exemple

{
  "tty": false
}

privilégié

Attribut

Description

Description

Contrôle si le conteneur doit démarrer en mode premier privilégié. Si non spécifiée, la valeur par défaut estfaux.

Importance

Facultatif

Format

Booléen

Valeurs acceptées

  • vrai: Démarre le conteneur en mode privilégié.

  • faux: Ne démarre pas le conteneur en mode privilégié.

Exemple

{
  "privileged": true
}

Hébergement d'un modèle d'application personnalisé dans un conteneur NGINX

Ensuite, vous devrez rendre le modèle d'application personnalisé disponible pour Container Station. Cette rubrique explique le processus d'hébergement du fichier de modèle avec un conteneur NGINX s'exécutant également dans Container Station.

Alternativement, vous pouvez également héberger le fichier de modèle d'application dans le serveur Web QNAP. Voir Hébergement d'un modèle d'application personnalisé avec le serveur Web QNAP.

Important :

Après avoir mis à jour le fichier JSON des modèles d'application personnalisés, vous devez redémarrer le conteneur NGINX pour que les modifications soient reflétées dans le conteneur.

  1. Téléversez le fichier du modèle d'application personnalisé.
    1. Ouvrez File Station.
    2. Accédez à un dossier sur l'appareil.
    3. Téléversez le fichier du modèle d'application.
    4. Notez l'emplacement du fichier modèle pour une utilisation ultérieure.
  2. Ouvrez Container Station.
  3. Dans le panneau supérieur, cliquez sur la flèche à côté de Explorer
  4. Sélectionnez Créer un conteneur.

    La fenêtre Créer un conteneur s’ouvre.

  5. Sélectionnez une image.

    Paramètre

    Action

    Mode

    Sélectionnez Mode Standard.

    Registre

    Sélectionnez Docker Hub.

    Image

    Entreznginx.

  6. Cliquez sur Suivant.
  7. Facultatif : Configurez les paramètres du conteneur.

    Paramètre

    Action

    Nom

    Entrez un nom pour la machine virtuelle. Par exemple : nginx-my-template.

    Politique de démarrage automatique

    Sélectionnez Sauf en cas d'arrêt.

    Cette option fera toujours redémarrer le conteneur à moins qu'il ne soit arrêté manuellement par un utilisateur.

    Configuration de réseau

    Configurez les paramètres en fonction de votre environnement réseau.

    Dans ce didacticiel, nous utilisons le mode réseau par défaut et envoyons le trafic vers le conteneur via le port30080 sur l'hôte.

    Remarque:

    Si le champ Hôte n'est pas spécifié, le port publié peut changer après le redémarrage du conteneur. Cela peut rendre le modèle d'application inaccessible à Container Station.

  8. Facultatif : Modifiez les paramètres avancés.
    1. Cliquez sur Paramètres avancés.

      La fenêtre Paramètres avancés s'affiche.

    2. Allez dans l’onglet Stockage.
    3. Cliquez sur la flèche près d’Ajouter un volume.
    4. Sélectionnez Lier le chemin de l'hôte de montage.

      Une nouvelle ligne de stockage est ajoutée.

    5. Cliquez sur .

      La fenêtre Sélectionnez le chemin de l'hôte s’ouvre.

    6. Recherchez et sélectionnez le fichier de modèle d'application que vous avez téléchargé précédemment.
    7. Cliquez sur Appliquer.
    8. Dans le champ Conteneur , saisissez/usr/share/nginx/html/TEMPLATE_FILENAME.
      Remarque:

      RemplacezTEMPLATE_FILENAME par le nom de votre fichier modèle. Par exemple : /usr/share/nginx/html/my-templates.json

    9. Sélectionnez RO.
    10. Cliquez sur Appliquer.

      Container Station enregistre les paramètres de stockage.

  9. Cliquez sur Suivant.
  10. Vérifiez les paramètres du conteneur, puis cliquez sur Terminer.

Le fichier de modèle d'application devient disponible pour utilisation.

Remarque:

Vous pouvez vérifier que le fichier de modèle d'application est accessible en saisissant http://HOST_IP_ADDRESS:PUBLISHED_HOST_PORT/TEMPLATE_FILENAME dans le navigateur Web. Par exemple : http://192.168.1.1:30080/my-templates.json.

Hébergement d'un modèle d'application personnalisé avec le serveur Web QNAP

Ensuite, vous devrez rendre le modèle d'application personnalisé disponible pour Container Station. Cette rubrique explique le processus d'hébergement du fichier modèle avec le serveur Web QNAP.

Alternativement, vous pouvez également héberger le fichier de modèle d'application avec un conteneur NGINX directement dans Container Station. Voir Hébergement d'un modèle d'application personnalisé dans un conteneur NGINX.

  1. Activez le serveur Web QTS.
    1. Connectez-vous au système en tant qu'administrateur.
    2. Allez dans Panneau de configuration > Applications > Serveur web > Serveur Web.
    3. Sélectionnez Activer le serveur Web.
    4. Facultatif : Configurez les paramètres du serveur Web.
    5. Cliquez sur Appliquer.

      Le système active le serveur Web

  2. Téléversez le fichier du modèle d'application personnalisé.
    1. Ouvrez File Station.
    2. Accédez au dossier Web créé pour le serveur Web.
    3. Téléversez le fichier du modèle d'application.

Le fichier de modèle d'application devient disponible pour utilisation.

Remarque:

Vous pouvez vérifier que le fichier de modèle d'application est accessible en saisissant http://HOST_IP_ADDRESS:WEB_SERVER_PORT/TEMPLATE_FILENAME dans le navigateur Web. Par exemple : http://192.168.1.1:80/my-templates.json.

Ajout d'un modèle d'application personnalisé à Container Station

L'étape suivante consiste à ajouter le fichier de modèle d'application personnalisée à Container Station. Cela rend la liste des applications disponibles dans Container Station.

  1. Démarrez Container Station.
  2. Dans le menu, cliquez sur Préférences.
  3. Allez dans Modèles d'application.
  4. Sélectionnez Activer le modèle personnalisé.
  5. Spécifiez l'URL d'un modèle d'application personnalisé.
    Remarque:

    Selon votre configuration, l'URL peut nécessiter que vous incluiez l'adresse IP et le numéro de port du serveur Web configuré. Par exemple : http://192.168.1.1:30080/my-template-file.json.

  6. Cliquez sur Appliquer.

Container Station enregistre le modèle d'application personnalisé.

Déploiement d'un modèle d'application personnalisé

La dernière étape consiste à déployer un conteneur à partir du fichier de modèle d'application personnalisé que vous avez ajouté à l'étape précédente.

  1. Dans le menu, allez dans Modèles d'application.
  2. Accédez à l'onglet Événements du pare-feu.
  3. Identifiez un modèle.
  4. Cliquez sur Déployer.

L'assistant Déployer un conteneur s'ouvre. Voir Créer un conteneur Docker.

Est-ce que cet article a été utile ?

59% des utilisateurs pensent que ces informations sont utiles.
Merci pour votre commentaire.

Veuillez nous indiquer comment améliorer cet article :

Si vous souhaitez fournir un commentaire supplémentaire, veuillez l’inclure ci-dessous.

Choisissez une spécification

      En voir davantage Moins
      Ce site est disponible dans d'autres pays/régions :
      open menu
      back to top