Tous les produits
Search
Centre de documentation

Platform For AI:Manage sub-containers with DockerBoard

Dernière mise à jour :Sep 18, 2026

Les sous-conteneurs DSW s'appuient sur la technologie Docker-in-Docker (DinD). Au sein d'une seule instance DSW, vous pouvez créer et gérer plusieurs conteneurs secondaires afin d'isoler les environnements et les ressources. La PAI console propose une interface visuelle permettant de créer, démarrer, arrêter et supprimer des sous-conteneurs, ainsi que d'y accéder via SSH.

Cas d'utilisation

  • Isolez différents environnements de développement au sein de la même instance DSW et comparez les résultats d'entraînement entre plusieurs images.

  • Lorsque les ressources GPU sont limitées, créez des sous-conteneurs à partir d'images différentes pour changer d'environnement d'exécution sans avoir à reconstruire l'instance ni attendre de nouveau dans la file d'attente.

  • Lorsque plusieurs développeurs partagent une instance DSW, utilisez des sous-conteneurs pour isoler l'environnement et les ressources de chacun.

Prérequis

  • Les sous-conteneurs sont actuellement pris en charge uniquement sur les instances DSW créées dans un groupe de ressources Lingjun ou un groupe de ressources public.

  • L'administrateur de l'instance (l'utilisateur qui a créé l'instance ou son propriétaire) doit disposer des permissions nécessaires pour créer et gérer des instances DSW.

  • La fonctionnalité Enable Multi-Container Isolation (DinD) doit être activée lors de la création de l'instance DSW.

  • Pour accéder aux sous-conteneurs via SSH, activez également la fonctionnalité SSH sur l'instance DSW.

Rôles et permissions

La gestion des sous-conteneurs implique deux rôles :

  • Administrateur de l'instance (propriétaire) : utilisateur ayant créé l'instance DSW. Ce rôle gère la configuration au niveau de l'instance, notamment l'activation de DinD, la configuration des restrictions d'accès, la définition du nombre maximal de sous-conteneurs et l'établissement des règles d'isolation des répertoires de données.

  • Développeur de sous-conteneur : utilisateur disposant d'un rôle d'espace de travail correspondant (tel que le développement d'algorithmes) ou de permissions RAM. Les développeurs de sous-conteneurs peuvent consulter la liste des sous-conteneurs, créer leurs propres sous-conteneurs et les utiliser en se connectant via SSH. Chaque développeur peut démarrer, arrêter et supprimer uniquement les sous-conteneurs qu'il a créés, mais il peut consulter les informations de tous les sous-conteneurs.

Les permissions peuvent être contrôlées de deux manières :

  • Basé sur le rôle d'espace de travail : l'administrateur de l'instance peut restreindre l'accès au conteneur principal pour certains rôles (comme le développement d'algorithmes) dans la configuration de l'instance. Les rôles restreints ne peuvent développer que dans des sous-conteneurs. Cette méthode est simple à comprendre et convient à la plupart des scénarios.

  • Basé sur la politique RAM : configurez des politiques RAM pour un contrôle plus fin des permissions, jusqu'au niveau de sous-conteneurs spécifiques sur des instances données. Cette méthode convient aux entreprises exigeant un contrôle strict des permissions.

Opérations de l'administrateur de l'instance

Activer l'isolation multi-conteneurs lors de la création d'une instance

  1. Connectez-vous à la PAI console, accédez à la page DSW et cliquez sur Create Instance.

  2. Dans la configuration de l'instance, repérez le commutateur Enable Multi-Container Isolation (DinD) et activez-le.

  3. Une fois activé, les paramètres suivants apparaissent :

    • Restrict roles that can access the main container : sélectionnez les rôles d'espace de travail à restreindre dans la liste déroulante. Les rôles restreints ne peuvent pas ouvrir ni utiliser directement le conteneur principal DSW. Ils développent plutôt dans des sous-conteneurs accessibles via SSH.

      Par exemple, après avoir sélectionné Algorithm Development, les utilisateurs dotés du rôle de développement d'algorithmes ne peuvent pas accéder au conteneur principal, mais ils peuvent toujours créer et utiliser leurs propres sous-conteneurs depuis l'onglet Sub-container Management de la page des détails de l'instance.

      Si vous ne sélectionnez aucun rôle, tous les utilisateurs autorisés peuvent accéder au conteneur principal et le comportement reste identique à celui d'avant.

    • Maximum Number of Sub-containers : définissez le nombre maximal de sous-conteneurs pouvant être créés sur l'instance. Les valeurs valides sont des entiers compris entre 1 et 16 ; la valeur par défaut est 10.

    • Data Catalog Fencing Configuration : spécifiez le chemin du fichier de configuration d'isolation des répertoires de données dans le conteneur principal. Le chemin par défaut est /etc/docker/dockerboard/mount_access.json. Ce fichier contrôle les répertoires de données que chaque utilisateur peut monter lors de la création de sous-conteneurs. Vous pouvez d'abord cliquer sur Configuration Template Download pour télécharger le modèle de fichier de configuration. Pour les étapes de configuration, consultez Configurer l'isolation des répertoires de données.

  4. Finalisez la configuration restante de l'instance et soumettez-la pour créer l'instance.

Configurer l'isolation des répertoires de données

L'isolation des répertoires de données contrôle les répertoires du conteneur principal que chaque développeur peut monter lors de la création d'un sous-conteneur. Elle empêche les développeurs d'accéder sans autorisation aux données de stockage des autres utilisateurs.

Étapes de configuration :

  1. Sur la page de création ou de modification de l'instance, cliquez sur le lien Configuration Template Download situé sous Data Catalog Fencing Configuration pour télécharger le modèle de fichier JSON.

  2. Suivez le format du modèle et renseignez la correspondance entre l'UID de chaque utilisateur RAM Alibaba Cloud et les répertoires du conteneur principal DSW auxquels l'utilisateur peut accéder.

  3. Placez le fichier mount_access.json modifié dans le conteneur principal DSW à l'emplacement spécifié par le chemin configuré (par défaut, /etc/docker/dockerboard/mount_access.json).

Format du fichier de configuration :

Le fichier de configuration est au format JSON. Chaque clé correspond à l'UID d'un utilisateur RAM Alibaba Cloud et chaque entrée utilisateur prend en charge deux champs : Allow (répertoires que l'utilisateur est autorisé à monter) et Deny (répertoires que l'utilisateur n'est pas autorisé à monter). L'exemple suivant illustre le format :

{
  "123124432xxx": {
    "Allow": [
      "/mnt/workspace",
      "/mnt/data1"
    ],
    "Deny": [
      "/mnt/data2"
    ]
  },
  "224321234xxx": {
    "Allow": [
      "*"
    ]
  }
}

Le tableau suivant décrit les champs :

Champ

Description

clé (par exemple, 123124432xxx)

L'UID d'un utilisateur RAM Alibaba Cloud

Allow

Liste des répertoires du conteneur principal que l'utilisateur est autorisé à monter. Définissez ce champ sur "*" pour autoriser le montage de tous les répertoires

Deny

Liste des répertoires du conteneur principal que l'utilisateur n'est pas autorisé à monter. Deny est prioritaire sur Allow. Si un répertoire figure dans les deux listes, il ne peut pas être monté. Ce champ est facultatif

Règles de configuration :

  • Si le fichier de configuration existe et respecte un format valide, le système vérifie si l'utilisateur actuel dispose de l'autorisation de monter les répertoires sélectionnés lors de la création d'un sous-conteneur.

  • Si le fichier de configuration ne contient aucune entrée pour l'utilisateur actuel, celui-ci ne peut pas monter de répertoires de données lors de la création d'un sous-conteneur et le message suivant s'affiche : « Your account has no available DSW paths. If you need to mount directories, contact the instance administrator to add the configuration for you. »

  • Si le chemin du fichier configuré est vide ou si le fichier n'existe pas, le système ignore les vérifications d'isolation des répertoires et tous les utilisateurs peuvent monter n'importe quel répertoire du conteneur principal.

Opérations du développeur de sous-conteneur

Ouvrir la page de gestion des sous-conteneurs

  1. Connectez-vous à la PAI console et accédez à la page DSW.

  2. Dans la liste des instances, cliquez sur le nom de l'instance cible sur laquelle DinD est activé pour accéder à la page des détails de l'instance.

  3. Sur la page des détails de l'instance, cliquez sur l'onglet Sub-container Management pour ouvrir la page de gestion.

Remarque

L'onglet de gestion des sous-conteneurs apparaît uniquement lorsque le conteneur principal DSW est dans l'état Running . Si le conteneur principal n'est pas en cours d'exécution, l'onglet n'est pas affiché.

Créer un sous-conteneur

Sur la page de gestion des sous-conteneurs, cliquez sur le bouton Create Sub-container et renseignez les paramètres suivants dans le formulaire de création.

Informations de base

Paramètre

Obligatoire

Description

Exemple

Nom du conteneur

Oui

Spécifiez un nom permettant d'identifier facilement le sous-conteneur.

Par exemple : my-container

Nom d'hôte

Non

Spécifiez un nom d'hôte personnalisé pour le sous-conteneur.

Par exemple : my-host

Politique de redémarrage

Non

Définissez la politique de redémarrage automatique du conteneur après sa sortie.

Par exemple : aucun redémarrage automatique

Informations sur l'environnement

Paramètre

Obligatoire

Description

Exemple

Configuration de l'image

Oui

Sélectionnez l'image utilisée par le sous-conteneur. Deux méthodes sont prises en charge :

  • Image personnalisée : sélectionnez une image personnalisée enregistrée auprès de PAI.

  • Adresse de l'image : saisissez l'adresse complète du registre d'images. Si le registre d'images est privé, vous devez fournir les identifiants.

Par exemple : dsw-registry-vpc.cn-hangzhou.cr.aliyuncs.com/pai/torcheasyrec:1.1.0-pytorch2.10.0-gpu-py311-cu129-ubuntu22,04

Clé publique SSH

Oui

Saisissez la clé publique SSH de votre client local, qui sera utilisée ultérieurement pour vous connecter au sous-conteneur via SSH.

Si vous n'avez pas encore généré de paire de clés SSH, exécutez ssh-keygen -t rsa -b 4096 dans un terminal local. Par défaut, la clé publique est enregistrée dans ~/.ssh/id_rsa.pub

Montage du conteneur principal

Non

Sur les instances où le disque système persistant est activé, les sous-conteneurs peuvent monter n'importe quel chemin du conteneur principal. Sur les instances où le disque système persistant n'est pas activé, les sous-conteneurs peuvent monter uniquement les chemins de stockage et les jeux de données montés sur le conteneur principal.

Montage du jeu de données

Non

Seuls les jeux de données déjà montés sur le conteneur principal, ou les jeux de données situés dans leurs sous-répertoires, peuvent être montés.

Variables d'environnement

Non

Définissez des variables d'environnement personnalisées pour le sous-conteneur sous forme de paires clé-valeur.

Par exemple : ENV=prod

Commande de démarrage

Non

Spécifiez la commande à exécuter au démarrage du conteneur.

Par exemple : python app.py

Point d'entrée

Non

Spécifiez le point d'entrée du conteneur.

Par exemple : /bin/bash

Informations sur les ressources

Paramètre

Obligatoire

Description

Exemple

Montage du périphérique GPU

Non

Si l'instance DSW dispose de ressources GPU, vous pouvez sélectionner les périphériques GPU à monter lors de la création du sous-conteneur. Toutes les cartes GPU de l'instance (y compris les numéros de périphérique) sont répertoriées et vous pouvez en sélectionner plusieurs.

Après sélection, les périphériques GPU sont montés sur le sous-conteneur pour utilisation.

Limite CPU

Non

Définissez l'utilisation maximale du CPU pour le sous-conteneur. Si vous laissez ce champ vide, aucune limite n'est appliquée et le sous-conteneur peut consommer d'autres ressources inactives de l'instance.

Par exemple : 8 cœurs

Limite de mémoire

Non

Définissez l'utilisation maximale de la mémoire pour le sous-conteneur. Si vous laissez ce champ vide, aucune limite n'est appliquée et le sous-conteneur peut consommer d'autres ressources inactives de l'instance.

Par exemple : 48 GiB

Une fois la configuration terminée, cliquez sur Confirm pour créer le sous-conteneur. Sur la page de gestion des sous-conteneurs, cliquez sur Child Container Creation Progress pour suivre le processus de création.

Gérer les sous-conteneurs

Dans la liste des sous-conteneurs, la colonne Actions de chaque sous-conteneur propose les opérations suivantes :

Vous ne pouvez gérer que les sous-conteneurs que vous avez créés.
  • Start : démarre un sous-conteneur à l'état Stopped.

  • Stop : arrête un sous-conteneur en cours d'exécution. Une fois arrêté, les processus du sous-conteneur sont terminés, mais la configuration du conteneur et les données de stockage montées ne sont pas perdues.

  • Restart : redémarre un sous-conteneur en cours d'exécution. Cette opération équivaut à arrêter le sous-conteneur puis à le redémarrer.

  • Logs : affiche les journaux d'exécution du sous-conteneur, utiles pour le dépannage.

  • SSH connection information : affiche les informations de connexion SSH du sous-conteneur, y compris le nom d'utilisateur de connexion et la commande de connexion.

  • Delete : supprime le sous-conteneur. Les données du sous-conteneur qui ne sont pas persistantes via un stockage monté ne peuvent pas être récupérées après la suppression. Procédez avec prudence.

Afficher la liste des sous-conteneurs

La page de gestion des sous-conteneurs affiche la liste de tous les sous-conteneurs de l'instance actuelle. La liste présente les informations suivantes :

Remarque

La liste contient uniquement les sous-conteneurs créés via la page de gestion des sous-conteneurs. Les sous-conteneurs créés manuellement par les utilisateurs en exécutant des commandes docker ne sont pas inclus.

Champ

Description

Nom du conteneur

Nom du sous-conteneur

Nom d'utilisateur

Nom d'utilisateur de la personne ayant créé le sous-conteneur

État

État actuel du sous-conteneur, notamment Creating (image en cours de téléchargement), Created, Running, Paused, Restarting, Stopped, Starting, Stopping et Updating

Mémoire GPU (GiB)

Numéro du périphérique GPU et utilisation de la mémoire GPU

Ressources CPU

Utilisation du CPU et nombre de cœurs

Mémoire (GiB)

Utilisation de la mémoire

Image du conteneur

Image utilisée par le sous-conteneur

Heure de création

Date et heure de création du sous-conteneur

Tous les utilisateurs disposant des permissions de lecture DSW peuvent consulter la liste complète des sous-conteneurs, mais ils ne peuvent démarrer, arrêter et supprimer que les sous-conteneurs qu'ils ont créés.

Afficher la liste des tâches de création de conteneur

La création d'un sous-conteneur peut prendre beaucoup de temps (par exemple, lors du téléchargement d'une image volumineuse). Le système assure le suivi des tâches de création de conteneur.

Dans le coin supérieur droit de la page de gestion des sous-conteneurs, cliquez sur Child Container Creation Progress pour afficher l'état et les journaux de toutes les tâches de création de conteneur. Vous pouvez annuler manuellement les tâches à l'état Creating. Par défaut, les enregistrements de tâches sont conservés pendant 3 jours, puis supprimés automatiquement.

Accéder à un sous-conteneur via SSH

Une fois le sous-conteneur créé et à l'état Running, vous pouvez vous y connecter à distance via SSH.

Procédure :

  1. Dans la liste des sous-conteneurs, repérez le sous-conteneur cible et cliquez sur SSH connection information dans la colonne Actions. Les informations incluent le nom d'utilisateur de connexion et la commande de connexion complète.

  2. Copiez la commande de connexion générée par la console et exécutez-la dans un terminal local pour vous connecter au sous-conteneur. La commande se présente comme suit :

ssh <username>@<public-ip-address> -p <public-port> -i <local-private-key-path>

Le tableau suivant décrit les paramètres :

Paramètre

Description

username

Lié de manière unique à un sous-conteneur et affiché dans la boîte de dialogue « Access Method »

public-ip-address

Adresse d'accès public du conteneur principal DSW

public-port

Port public mappé au service SSH du sous-conteneur

local-private-key-path

Chemin du fichier de clé privée correspondant à la clé publique SSH saisie lors de la création du sous-conteneur (par exemple, ~/.ssh/id_rsa)

Après vous être connecté via SSH, vous accédez à l'environnement en ligne de commande du sous-conteneur correspondant. Tous les sous-conteneurs partagent le port public du conteneur principal DSW. L'accès est isolé grâce à la clé SSH distincte et au nom d'utilisateur de connexion dédié de chaque sous-conteneur.

Remarques d'utilisation et limites

  • Dépendance à l'état du conteneur principal : toutes les fonctionnalités de gestion des sous-conteneurs dépendent de l'état d'exécution du conteneur principal DSW. Si le conteneur principal est arrêté ou dans un état anormal, la page de gestion des sous-conteneurs n'est pas disponible et les sous-conteneurs ne sont pas accessibles.

  • Portée du montage de stockage : les sous-conteneurs peuvent monter uniquement des chemins de répertoire présents dans le conteneur principal. Le stockage externe ne peut pas être monté directement.

  • Limite du nombre de sous-conteneurs : le nombre de sous-conteneurs par instance est soumis à la limite configurée par l'administrateur. La limite maximale configurable est de 16.

  • Portée de la fonctionnalité : les sous-conteneurs ne fournissent pas l'environnement de développement complet du conteneur principal DSW (tel que les applications intégrées JupyterLab, Terminal et WebIDE). Les sous-conteneurs sont actuellement accessibles via SSH.

  • Persistance des données : les données d'un sous-conteneur qui ne sont pas persistantes via un stockage monté ne peuvent pas être récupérées après la suppression du sous-conteneur. Stockez les données importantes dans des répertoires montés.

  • Impact de la suppression de l'instance : lors de la suppression d'une instance DSW, tous les sous-conteneurs qu'elle héberge sont également supprimés. Sauvegardez vos données au préalable.

FAQ

Q : Pourquoi ne vois-je pas l'onglet de gestion des sous-conteneurs sur la page des détails de l'instance ?

Vérifiez les points suivants :

  1. La fonctionnalité Enable Multi-Container Isolation (DinD) a été activée lors de la création de l'instance DSW.

  2. Le conteneur principal DSW est dans l'état Running. Lorsque le conteneur principal n'est pas en cours d'exécution, l'onglet de gestion des sous-conteneurs n'est pas affiché.

Q : Pourquoi ne puis-je pas monter de répertoires de données lors de la création d'un sous-conteneur ?

L'administrateur de l'instance a peut-être configuré une politique d'isolation des répertoires de données et aucun répertoire disponible n'est attribué à votre utilisateur RAM dans le fichier de configuration. Contactez l'administrateur de l'instance pour qu'il ajoute une entrée vous concernant dans mount_access.json.

Q : Pourquoi la connexion SSH à un sous-conteneur échoue-t-elle ?

Vérifiez les points suivants dans l'ordre :

  1. Le sous-conteneur est-il à l'état Running ?

  2. La clé privée locale que vous utilisez correspond-elle à la clé publique saisie lors de la création du sous-conteneur ?

  3. SSH est-il activé sur l'instance DSW ?

  4. Votre réseau peut-il accéder à l'adresse publique et au port SSH public de l'instance ?

Q : Pourquoi la création d'un sous-conteneur prend-elle autant de temps ?

Le temps de création d'un sous-conteneur dépend principalement de la vitesse de téléchargement de l'image. Le premier téléchargement d'une image volumineuse peut être long. Vous pouvez consulter la progression et les journaux dans la liste des tâches de création de conteneur. Lors de la création ultérieure d'un nouveau conteneur à partir de la même image, la création est beaucoup plus rapide car l'image est déjà mise en cache localement.

Q : Puis-je gérer les sous-conteneurs créés par d'autres utilisateurs ?

Oui. Cela dépend de votre rôle et des paramètres de permission d'opération de l'instance.

  • Les propriétaires d'espace de travail, les administrateurs d'espace de travail et les propriétaires d'instance disposent de permissions d'opération complètes sur l'instance. Ils peuvent gérer les sous-conteneurs créés par n'importe quel utilisateur et ne sont pas affectés par la restriction interdisant d'opérer ou de modifier l'instance.

  • Les utilisateurs dotés du rôle de développement d'algorithmes ou d'exploitation et maintenance d'algorithmes, ainsi que les rôles personnalisés disposant de la permission de lecture seule DSW, peuvent par défaut gérer également les sous-conteneurs créés par d'autres utilisateurs. Une fois ces rôles restreints quant à l'opération ou à la modification de l'instance, ils ne peuvent gérer que les sous-conteneurs qu'ils ont créés.

  • Tous les utilisateurs disposant des permissions de lecture DSW peuvent consulter les informations de base de tous les sous-conteneurs.