Todos os produtos
Search
Central de documentação

Platform For AI:Manage sub-containers with DockerBoard

Última atualização: Sep 18, 2026

Os sub-contêineres do DSW são baseados na tecnologia Docker-in-Docker (DinD). Em uma única instância do DSW, você pode crie e gerencie múltiplos contêineres secundários para isolar ambientes e recursos. O PAI console oferece uma interface visual para criar, iniciar, parar e excluir sub-contêineres, além de acessá-los via SSH.

Casos de uso

  • Isole diferentes ambientes de desenvolvimento dentro da mesma instância do DSW e compare resultados de treinamento entre imagens.

  • Quando os recursos de GPU são escassos, crie sub-contêineres a partir de imagens diferentes para alternar runtimes sem reconstruir a instância e aguardar novamente na fila.

  • Quando vários desenvolvedores compartilham uma instância do DSW, utilize sub-contêineres para isolar o ambiente e os recursos de cada desenvolvedor.

Pré-requisitos

  • Os sub-contêineres são compatíveis apenas com instâncias do DSW criadas em um grupo de recursos Lingjun ou em um grupo de recursos público.

  • O administrador da instância (o usuário que a criou ou o proprietário) deve ter permissões para crie e gerencie instâncias do DSW.

  • O recurso Enable Multi-Container Isolation (DinD) deve ser ativado no momento da criação da instância do DSW.

  • Para acessar sub-contêineres via SSH, ative também o recurso SSH na instância do DSW.

Funções e permissões

O gerenciamento de sub-contêineres envolve duas funções:

  • Administrador da instância (proprietário): O usuário que criou a instância do DSW. Essa função gerencie a configuração em nível de instância, incluindo a ativação do DinD, a configuração de restrições de acesso, a definição do número máximo de sub-contêineres e a configuração de regras de isolamento de diretórios de dados.

  • Desenvolvedor de sub-contêiner: Um usuário com uma função de workspace correspondente (como desenvolvimento de algoritmos) ou permissões RAM. Desenvolvedores de sub-contêineres podem visualize a lista de sub-contêineres, crie seus próprios sub-contêineres e utilizá-los via SSH. Cada desenvolvedor pode iniciar, parar e exclua apenas os sub-contêineres que criou, mas pode visualize as informações de todos os sub-contêineres.

As permissões podem ser controladas de duas formas:

  • Baseada em função de workspace: O administrador da instância pode restringir funções específicas (como desenvolvimento de algoritmos) de acessar o contêiner principal na configuração da instância. As funções restritas só podem desenvolver em sub-contêineres acessados via SSH. Esse método é simples de entender e se aplica à maioria dos cenários.

  • Baseada em política RAM: Configure políticas RAM para um controle de permissões mais granular, chegando a sub-contêineres específicos em instâncias específicas. Esse método é adequado para clientes empresariais que exigem controle de permissões mais rigoroso.

Operações do administrador da instância

Ative o isolamento de múltiplos contêineres ao criar uma instância

  1. Acesse o PAI console, vá para a página do DSW e clique em Create Instance.

  2. Na configuração da instância, localize o switch Enable Multi-Container Isolation (DinD) e ative-o.

  3. Após ativar o recurso, os seguintes parâmetros serão exibidos:

    • Restrict roles that can access the main container: Selecione as funções de workspace a serem restringidas na lista suspensa. As funções restritas não podem abrir nem operar o contêiner principal do DSW diretamente — elas desenvolvem em sub-contêineres acessados via SSH.

      Por exemplo, ao selecione Algorithm Development, usuários com a função de desenvolvimento de algoritmos não conseguem entrar no contêiner principal, mas ainda podem crie e usar seus próprios sub-contêineres na aba Sub-container Management da página de detalhes da instância.

      Se nenhuma função for selecionada, todos os usuários autorizados poderão acessar o contêiner principal, e o comportamento permanece igual ao anterior.

    • Maximum Number of Sub-containers: Defina o número máximo de sub-contêineres que podem ser criados na instância. Os valores válidos são inteiros de 1 a 16; o valor padrão é 10.

    • Data Catalog Fencing Configuration: Especifique o caminho do arquivo de configuração de isolamento de diretórios de dados no contêiner principal. O caminho padrão é /etc/docker/dockerboard/mount_access.json. Esse arquivo controla os diretórios de dados que cada usuário pode montar ao crie sub-contêineres. Clique em Configuration Template Download para baixe o modelo do arquivo de configuração. Para as etapas de configuração, consulte Configure data directory isolation.

  4. Conclua as demais configurações da instância e envie-as para crie a instância.

Configure o isolamento de diretórios de dados

O isolamento de diretórios de dados controla quais diretórios do contêiner principal cada desenvolvedor pode montar ao crie um sub-contêiner. Isso impede que desenvolvedores acessem dados de armazenamento de outros usuários sem autorização.

Etapas de configuração:

  1. Na página de criação ou edite da instância, clique em Configuration Template Download em Data Catalog Fencing Configuration para baixe o arquivo de modelo JSON.

  2. Siga o formato do modelo e preencha o mapeamento entre o UID de cada usuário RAM da Alibaba Cloud e os diretórios do contêiner principal do DSW que o usuário pode acessar.

  3. Coloque o arquivo mount_access.json editado no contêiner principal do DSW, no caminho especificado pela configuração (por padrão, /etc/docker/dockerboard/mount_access.json).

Formato do arquivo de configuração:

O arquivo de configuração está no formato JSON. Cada chave é o UID de um usuário RAM da Alibaba Cloud, e cada entrada de usuário suporta dois campos: Allow (os diretórios que o usuário tem permissão para montar) e Deny (os diretórios que o usuário não tem permissão para montar). O exemplo a seguir ilustra o formato:

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

A tabela a seguir descreve os campos:

Campo

Descrição

chave (por exemplo, 123124432xxx)

O UID de um usuário RAM da Alibaba Cloud

Allow

A lista de diretórios do contêiner principal que o usuário tem permissão para montar. Defina este campo como "*" para permitir a montagem de todos os diretórios

Deny

A lista de diretórios do contêiner principal que o usuário não tem permissão para montar. Deny tem precedência sobre Allow. Se um diretório aparecer nas duas listas, ele não poderá ser montado. Este campo é opcional

Regras de configuração:

  • Se o arquivo de configuração existir e estiver em formato válido, o sistema verificará se o usuário atual tem permissão para montar os diretórios selecionados ao crie um sub-contêiner.

  • Se o arquivo de configuração não contiver uma entrada para o usuário atual, ele não poderá montar diretórios de dados ao crie um sub-contêiner, e a seguinte mensagem será exibida: "Your account has no available DSW paths. If you need to mount directories, contact the instance administrator to add the configuration for you."

  • Se o caminho do arquivo configurado estiver vazio ou o arquivo não existir, o sistema ignorará as verificações de isolamento de diretórios, e todos os usuários poderão montar qualquer diretório do contêiner principal.

Operações do desenvolvedor de sub-contêineres

Abrir a página de gerenciamento de sub-contêineres

  1. Acesse o PAI console e vá para a página do DSW.

  2. Na lista de instâncias, clique em no nome da instância de destino com DinD ativado para acesse a página de detalhes da instância.

  3. Na página de detalhes da instância, clique em na aba Sub-container Management para abrir a página de gerenciamento.

Nota

A aba de gerenciamento de sub-contêineres só é exibida quando o contêiner principal do DSW está no estado Running. Se o contêiner principal não estiver em execução, a aba não será exibida.

Crie um sub-contêiner

Na página de gerenciamento de sub-contêineres, clique em Create Sub-container e preencha as configurações a seguir no formulário de criação.

Informações básicas

Parâmetro

Obrigatório

Descrição

Exemplo

Nome do contêiner

Sim

Especifique um nome que facilite a identificação do sub-contêiner.

Por exemplo: my-container

Hostname

Não

Especifique um hostname personalizado para o sub-contêiner.

Por exemplo: my-host

Política de reinicialização

Não

Defina a política de reinicialização automática do contêiner após ele ser encerrado.

Por exemplo: sem reinicialização automática

Informações de ambiente

Parâmetro

Obrigatório

Descrição

Exemplo

Configuração de imagem

Sim

Selecione a imagem usada pelo sub-contêiner. Dois métodos são suportados:

  • Imagem personalizada: selecione uma imagem personalizada registrada no PAI.

  • Endereço de imagem: insira o endereço completo do repositório de imagens. Se o repositório for privado, forneça as credenciais.

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

Chave pública SSH

Sim

Insira a chave pública SSH do seu cliente local, que será usada para acessar o sub-contêiner via SSH posteriormente.

Se você ainda não gerou um par de chaves SSH, execute ssh-keygen -t rsa -b 4096 em um terminal local. Por padrão, a chave pública é salva em ~/.ssh/id_rsa.pub

Montagem do contêiner principal

Não

Em instâncias com disco de sistema persistente ativado, os sub-contêineres podem montar qualquer caminho do contêiner principal. Nas instâncias sem disco de sistema persistente, os sub-contêineres só podem montar os caminhos de armazenamento e os datasets montados no contêiner principal.

Montagem de dataset

Não

Somente datasets já montados no contêiner principal, ou datasets em seus subdiretórios, podem ser montados.

Variáveis de ambiente

Não

Defina variáveis de ambiente personalizadas para o sub-contêiner em pares chave-valor.

Por exemplo: ENV=prod

Comando de inicialização

Não

Especifique o comando a ser executado na inicialização do contêiner.

Por exemplo: python app.py

Entrypoint

Não

Especifique o entrypoint do contêiner.

Por exemplo: /bin/bash

Informações de recursos

Parâmetro

Obrigatório

Descrição

Exemplo

Montagem de dispositivo GPU

Não

Se a instância do DSW tiver recursos de GPU, selecione os dispositivos GPU a serem montados ao crie o sub-contêiner. Todas as placas GPU da instância (incluindo os números de dispositivo) são listadas, e você pode selecione múltiplas placas.

Após selecione os dispositivos GPU, eles serão montados no sub-contêiner para uso.

Limite de CPU

Não

Defina o uso máximo de CPU do sub-contêiner. Se o campo for deixado em branco, nenhum limite será aplicado, e o sub-contêiner poderá consumir outros recursos ociosos da instância.

Por exemplo: 8 cores

Limite de memória

Não

Defina o uso máximo de memória do sub-contêiner. Se o campo for deixado em branco, nenhum limite será aplicado, e o sub-contêiner poderá consumir outros recursos ociosos da instância.

Por exemplo: 48 GiB

Após concluir a configuração, clique em Confirm para crie o sub-contêiner. Na página de gerenciamento de sub-contêineres, clique em Child Container Creation Progress para acompanhar o processo de criação.

Gerencie sub-contêineres

Na lista de sub-contêineres, a coluna de ações de cada sub-contêiner oferece as seguintes operações:

Você só pode gerencie os sub-contêineres que criou.
  • Start: Inicia um sub-contêiner no estado Stopped.

  • Stop: Interrompe um sub-contêiner em execução. Após a parada, os processos são encerrados, mas a configuração do contêiner e os dados de armazenamento montados são preservados.

  • Restart: Reinicia um sub-contêiner em execução. Essa operação equivale a parar o sub-contêiner e iniciá-lo novamente.

  • Logs: Visualize os logs de runtime do sub-contêiner, úteis para a resolução de problemas.

  • SSH connection information: Visualize as informações de conexão SSH do sub-contêiner, incluindo o nome de usuário e o comando de conexão.

  • Delete: Exclua o sub-contêiner. Os dados não persistidos por meio de armazenamento montado não poderão ser recuperados após a exclusão. Proceda com cautela.

Visualize a lista de sub-contêineres

A página de gerenciamento de sub-contêineres exibe uma lista com todos os sub-contêineres da instância atual. A lista apresenta as seguintes informações:

Nota

A lista contém apenas os sub-contêineres criados na página de gerenciamento de sub-contêineres. Sub-contêineres criados manualmente pelos usuários por meio de comandos docker não são incluídos.

Campo

Descrição

Nome do contêiner

O nome do sub-contêiner

Nome de usuário

O nome do usuário que criou o sub-contêiner

Status

O status atual do sub-contêiner, incluindo: Creating (imagem sendo baixada), Created, Running, Paused, Restarting, Stopped, Starting, Stopping e Updating

Memória GPU (GiB)

O número do dispositivo GPU e o uso de memória GPU

Recursos de CPU

O uso de CPU e o número de cores

Memória (GiB)

O uso de memória

Imagem do contêiner

A imagem usada pelo sub-contêiner

Horário de criação

O horário em que o sub-contêiner foi criado

Todos os usuários com permissões de leitura no DSW podem visualize a lista completa de sub-contêineres, mas só podem iniciar, parar e exclua os sub-contêineres que criaram.

Visualize a lista de tarefas de criação de contêineres

A criação de um sub-contêiner pode demorar bastante (por exemplo, quando uma imagem grande precisa ser baixada). O sistema acompanha as tarefas de criação de contêineres.

No canto superior direito da página de gerenciamento de sub-contêineres, clique em Child Container Creation Progress para visualize o status e os logs de todas as tarefas de criação de contêineres. Tarefas no estado Creating podem ser canceladas manualmente. Por padrão, os registros de tarefas são retidos por 3 dias e removidos automaticamente após esse período.

Acesse um sub-contêiner via SSH

Após um sub-contêiner ser criado e estar no estado Running, você pode acessá-lo remotamente via SSH.

Procedimento:

  1. Na lista de sub-contêineres, localize o sub-contêiner de destino e clique em SSH connection information na coluna de ações. As informações incluem o nome de usuário de conexão e o comando de conexão completo.

  2. Copie o comando de conexão gerado pelo console e execute-o em um terminal local para acessar o sub-contêiner. O comando tem o seguinte formato:

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

A tabela a seguir descreve os parâmetros:

Parâmetro

Descrição

username

Vinculado exclusivamente a um sub-contêiner e exibido na caixa de diálogo "Access Method"

public-ip-address

O endereço de acesso público do contêiner principal do DSW

public-port

A porta pública mapeada para o service SSH do sub-contêiner

local-private-key-path

O caminho do arquivo de chave privada correspondente à chave pública SSH inserida ao crie o sub-contêiner (por exemplo, ~/.ssh/id_rsa)

Após o acesso via SSH, você entra no ambiente de linha de comando do sub-contêiner correspondente. Todos os sub-contêineres compartilham a porta pública do contêiner principal do DSW. O isolamento de acesso é garantido pela chave SSH exclusiva e pelo nome de usuário de conexão dedicado de cada sub-contêiner.

Observações de uso e limitações

  • Dependência do estado do contêiner principal: Todas as funcionalidades de gerenciamento de sub-contêineres dependem do estado de execução do contêiner principal do DSW. Se o contêiner principal estiver parado ou em estado anormal, a página de gerenciamento de sub-contêineres ficará indisponível e os sub-contêineres não poderão ser acessados.

  • Escopo de montagem de armazenamento: Os sub-contêineres só podem montar caminhos de diretório do contêiner principal. Armazenamento externo não pode ser montado diretamente.

  • Limite de quantidade de sub-contêineres: O número de sub-contêineres em cada instância está sujeito ao limite configurado pelo administrador. O limite máximo configurável é 16.

  • Escopo de recursos: Os sub-contêineres não oferecem o ambiente de desenvolvimento completo do contêiner principal do DSW (como os aplicativos integrados JupyterLab, Terminal e WebIDE). O acesso aos sub-contêineres é feito exclusivamente via SSH.

  • Persistência de dados: Dados em um sub-contêiner não persistidos por meio de armazenamento montado não poderão ser recuperados após a exclusão do sub-contêiner. Armazene dados importantes em diretórios montados.

  • Impacto da exclusão da instância: Quando uma instância do DSW é excluída, todos os sub-contêineres nela contidos também são excluídos. Faça backup dos seus dados com antecedência.

Perguntas frequentes

P: Por que não consigo ver a aba de gerenciamento de sub-contêineres na página de detalhes da instância?

Verifique os seguintes pontos:

  1. O recurso Enable Multi-Container Isolation (DinD) foi ativado no momento da criação da instância do DSW.

  2. O contêiner principal do DSW está no estado Running. Quando o contêiner principal não está em execução, a aba de gerenciamento de sub-contêineres não é exibida.

P: Por que não consigo montar diretórios de dados ao crie um sub-contêiner?

O administrador da instância pode ter configurado uma política de isolamento de diretórios de dados, e nenhum diretório disponível foi atribuído ao seu usuário RAM no arquivo de configuração. Entre em contato com o administrador da instância para que ele adicione uma entrada para você no arquivo mount_access.json.

P: Por que a conexão SSH com um sub-contêiner falha?

Verifique os seguintes pontos na ordem indicada:

  1. Se o sub-contêiner está no estado Running

  2. Se a chave privada local utilizada corresponde à chave pública inserida ao crie o sub-contêiner

  3. Se o SSH está ativado na instância do DSW

  4. Se a sua rede consegue acessar o endereço público e a porta SSH pública da instância

P: Por que a criação de um sub-contêiner demora muito?

O tempo de criação do sub-contêiner depende principalmente da velocidade de download da imagem. O download de uma imagem grande pela primeira vez pode levar bastante tempo. Acompanhe o progresso e os logs na lista de tarefas de criação de contêineres. Ao crie um novo contêiner a partir da mesma imagem posteriormente, o processo será muito mais rápido porque a imagem já estará armazenada em cache localmente.

P: Posso gerencie sub-contêineres criados por outros usuários?

Depende da sua função e das configurações de permissão de operação da instância.

  • Proprietários de workspace, administradores de workspace e proprietários de instância têm permissões de operação completas na instância. Eles podem gerencie sub-contêineres criados por qualquer usuário e não são afetados pela restrição que proíbe operar ou alterar a instância.

  • Usuários com a função de desenvolvimento de algoritmos ou de O&M de algoritmos, e funções personalizadas com permissão de leitura no DSW, também podem gerencie sub-contêineres criados por outros usuários por padrão. Após essas funções serem restritas de operar ou alterar a instância, elas só poderão gerencie os sub-contêineres que criaram.

  • Todos os usuários com permissões de leitura no DSW podem visualize as informações básicas de todos os sub-contêineres.